【Rails】audioタグのsrc属性の値に + を含めるとエラーになる
背景
jsで、audio_tagで出力されるaudio要素のsrc属性に値を代入していた。
値は以下のようなDateTime型
の値を含んだファイル名。
[12] pry(main)> DateTime.now => Tue, 14 Jan 2020 08:02:15 +0900
が、audio要素のsrc属性でエラーになる。
値がDate.todayのようなDate型
を含んだファイル名だとエラーにならない。
[11] pry(main)> Date.today => Tue, 14 Jan 2020
調査していくと、srcの値に +
が含まれているとエラーになることがわかった。
DateTimeにはタイムゾーンの +09:00
に +
が含まれているのでエラーになる。
Dateには +
が含まれていないので実行出来る。
対策
そのため、strftimeでタイムゾーンの部分を除去することで対応しました。
DateTime.now.strftime('%Y-%m-%d_%H:%M:%S')
除去した結果を確認します。
[13] pry(main)> DateTime.now.strftime('%Y-%m-%d_%H:%M:%S') => "2020-01-14_08:09:11"
strftimeでフォーマットされ、+
が除去できました。
この値をファイル名に入れることで、DateTime型のような値でもaudioタグのエラーが解消出来ました。
RailsやRubyを学びたい人へ
RailsやRubyを学びたい人は、
RailsHack(レイルズハック)という、
最近できた新しいプログラミングスクール(今なら通常価格69,800円が、早期割で29,800円!)か、
Udemy で下記のコースを受講すると良いです★
✅1. フルスタックエンジニアが教える 即戦力Railsエンジニア養成講座
✅2. 【はむ式】ハンズオンで学ぶRuby on Rails 6【Dockerにも触れられる】 <- おすすめ。ハムさんはReactやTypeScriptの教材も非常に丁寧。
✅3. はじめてのRuby on Rails入門-RubyとRailsを基礎から学びWebアプリケーションをネットに公開しよう
また、
Udemy は定期的にセールをやっていますし(90%OFFとかもザラ)、
「30日間なら返金できる」ので、
満足できなかった時でも安心です。
【公式】RailsHack(レイルズハック)
【公式】Udemyで学んでみる