スリ飯屋MaLankaのフリーエンジニアな日々

IT実務未経験から約1年、東京でフリーランスのRuby on Railsエンジニアに転職。約2年半、大阪中崎町でスリランカカレーの間借りしてました。フリーランスエンジニアになるためのノウハウ、スリランカの事を発信していきます。

【Rails】audio_tagのsrc属性の値に + を含めるとエラーになる

【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日間なら返金できる」ので、

満足できなかった時でも安心です。


f:id:mah666hhh:20201129193352p:plain


【公式】RailsHack(レイルズハック)

【公式】Udemyで学んでみる