これは私の最初の投稿であり、ひどく愚かに聞こえるかもしれません。私は私の最初のRailsアプリを構築しています。
私の_index.html.erb
_にこの行があります
_ <img src="/assets/Rand_front/<%= @random_image%>", style='height:50vw;width:100vw;margin-bottom:20px;' >
_
_image_tag
_の代わりに_img src
_を使用したい
コードをラップする正しい方法は何ですか?
これまでに試しました<%= image_tag ( "/assets/Rand_front/<%= @random_image%>", style='height:50vw;width:100vw;margin-bottom:20px;') %>
および<%= image_tag ( "/assets/Rand_front/<%= @random_image%>"), style='height:50vw;width:100vw;margin-bottom:20px;' %>
その他の多くのバージョンですが、どれも動作しないようですが、何が問題ですか?そして、私はそれを適切にどのように書くべきですか?
この_<%= @random_image%>
_ビットは、コントローラーのindex
メソッドからこの変数を取得しています。
_def index
@products = Product.all.order(created_at: :desc).group_by(&:category_id)
@images = ["1.jpg", "2.jpg", "3.jpg", "4.jpg", "5.jpg", "6.jpg", "7.jpg", "8.jpg", "9.jpg", "10.jpg"]
@random_no = Rand(10)
@random_image = @images[@random_no]
end
_
<%= image_tag ( "Rand_front/#{@random_image}", style='height:50vw;width:100vw;margin-bottom:20px;') %>
image_tag
は、パスの先頭に自動的にassets
を追加します
チェック イメージタグ ドキュメント
私が間違っていない場合は、アセットフォルダーにRand_front
フォルダーがあるため、image_tag("#{@random_image}")
を呼び出す必要があります。デフォルトでは、image_tag
ヘルパーは、アセットディレクトリ内のすべてのフォルダーでイメージ名を確認する必要があるためです
CSSプロパティについては、CSSプロパティを目的の値のキーとして渡すことができるoptions
ハッシュの使用を検討できます。
image_tag("#{@random_image}", height: 20, width: 20)
前の回答のドキュメントを確認できます
これがRuby on Railsが明示的に処理しているものです
<%= image_tag("source", {:style => "width:100px;"}) %>
(Rubyを使用すると、({})なしでこのコードを使用できます)、
私にとって、まず、これがどのようにRuby on Rails実際にコードを実行している)かを知ることが重要です。
言い換えると、はいRubyはコードを理解するので、({})形式を省略できます。それがいくつかを明確にするのに役立つことを願っています...