:extension
「かんたん RoR 」で演習したプロジェクトのいくつかをテストしてみたところ、ランチブックスは動いてくれなかったが、アルバムはこれという問題もなく動いた。で、もう一度自分で作ったものを動作させて画像表示のページを見ると、コマンドラインにこんな文字が出ている。
DEPRECATION WARNING: You've called image_path with a source that doesn't include an extension. In Rails 2.0, that will not result in .png automatically being appended. So you should call image_path('/item/image/5?extension=jpg.png') instead
どうやら画像ファイルの拡張子が指定されていない URL だと自動的に png として扱うよ、ということらしいので、image_tag のところで url_for( ) した部分に追加修正をしてみる。
url_for(:action => 'xx', :id => 'xx', :extension => '.jpg')
テストしてみるとひとまずよいらしく、画像が表示されるようになった。はじめに 'jpg' としてみたら、それでも表示はされた。どちらがよいのか、はたまた本来どうすべきなのかがまだ分かっていないが、ひとまずは png 以外をつかうのであれば拡張子を指定しておく必要があるらしい。(データベースに画像を格納しているために URL としては「画像のデータベースインデックス番号」が設定されるので、拡張子が存在しないという形。渡すファイル名がデータベースに保存されている本来のファイル名に補完できれば、拡張子を指定する必要はないのだろうなあ)
追記:
lunchbooks アプリが動作しなかったのは、多分ログインエンジンをアップデートしてないせいなのだろうなと。ほかと違うのはその程度だし。
| 固定リンク
コメント