Rails:如何在 Rails 应用程序中将 <img src= > 转换为 image_tag

新手上路,请多包涵

这是我在这里的第一篇文章,听起来可能非常愚蠢。我正在构建我的第一个 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

原文由 Slowboy 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 319
2 个回答
<%= image_tag "rand_front/#{@random_image}", style: 'height:50vw;width:100vw;margin-bottom:20px;' %>

image_tag 将自动添加 assets 在路径的开头

检查文档的 图像标签

原文由 Qaisar Nadeem 发布,翻译遵循 CC BY-SA 4.0 许可协议

这就是 Ruby on Rails 正在显式处理的内容

 <%= image_tag("source", {:style => "width:100px;"}) %>

(这意味着 Ruby 允许您在没有 ({}) 的情况下使用此代码,

对我来说,首先了解这就是 Ruby on Rails 实际运行代码的方式很重要。

换句话说,是的,你可以省略 ( { } ) 形式,因为 Ruby 会理解你的代码,希望这有助于澄清一些……

原文由 Jonathan Sanchez 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题