PIYO - Tech & Life -

Railsでapp/assets/images以下に置いた画像のパスをモデルで参照する

Rails

app/assets/images以下に置いた画像をViewから参照するにはasset_pathを使えばいい。

app/assets/images/title.pngを参照したいのであれば

= image_tag asset_path("title.png")

としておけばプロダクション環境でもちゃんと参照できる(はず)。

で、このメソッドをモデルから呼ぶ方法はないのか?ってのを調べた。たとえば、プロフィール画像が設定されていなかったらデフォルト画像を出すみたいなメソッドを用意しておくとViewのコードが煩雑にならないだろうし。

いや普通はヘルパー使えばいいのかなと思うんだけど、試しに呼んでみたということで。

実はasset_pathというメソッドはActionController::Base.helpersに定義されているので、モデルからはActionController::Base.helpers.asset_pathとして参照できてしまう。

他にも色々呼べちゃうのでいざというときには覚えておくといいかも?しれない。