LoginSignup
0
0

More than 3 years have passed since last update.

【Rails】controllerでassets下に保存されている画像を変数に格納してviewに出力する方法

Posted at

controllerを使ってassets下に保存されている画像をviewに出力する方法

Railsの自作アプリ開発を進める中で、パラメーターの値によってviewに出力する写真を変えたいと考えていました。
ネットを探っている中で例がなかったため、記事にすることにしました。

試したこと

バージョン:Ruby:2.6.3 Rails:5.1.7
controllerでassets/imagesに保存されている画像を変数に格納し、viewに出力する

controller
def image
  @image = URI("/assets/sample1.jpg")
end

コントローラーでは、変数に上記のようにURIを使って代入できることがわかりました。
初めはurl("/assets/sample1.jpg")と書いたところ、NoMethodErrorが発生。
undefined method `url' for #< SampleController:0x00007fc44b041bd8> Did you mean? URIと表示され、それを試したところ、うまく表示されたという経緯です。

view.html.erb
<%= image_tag @image %>

あとは、image_tagを使用して変数を書けば無事に出力できます。

自作アプリではcontrollerで受け取ったパラメーターをcase文を使用することで画像を変えています。
普通はviewにてimage_tagで画像を出力できます。controllerを用いて、条件によって出力する画像を変えたいと考える方が他にもいらっしゃれば、お力になれたら幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0