如何在html.erb中显示数据库中的多张图片?

How to display multiple images from the database in html.erb?

所以基本上我想知道 ruby 代码是什么来显示数据库中的图像。这是一个例子。假设我想查看产品 id:1 的页面 - 它应该显示与该 ID 号相关的指定图像。现在,如果我想要 id:2,它应该显示与该数字相关的图像。所有这些都将在一个 show.html.erb 页面上。我迷路了,请帮忙。

谢谢!

如果您的图片标题与您的产品 ID 匹配:

<%= image_path("product_#{@product.id}.jpg") %>

注意:image_path是辅助方法。

通常,您的对象应该有一个字符串属性指向图像的 url。我相信回形针 gem 有助于实现这一点。注入 id 的方法可能会奏效,或者随着图像的增加,它可能会很快变得过于复杂。

首先在 ERB 上,您需要访问所有需要显示图像的 Product 记录。

为演示起见,您可以像这样访问:

Product.find(1)
Product.find(2)
Product.find(3)

现在假设每个存储图像 URL 的产品都有 image_url 列,您可以像这样显示图像:

<%= image_tag(Product.find(1).image_url) %>
<%= image_tag(Product.find(2).image_url) %>
<%= image_tag(Product.find(3).image_url) %>

然而,在现实世界中,如果您将产品作为数组从控制器传入,然后迭代该数组变量 @products,然后在您的 ERB 中像这样,效果会更好:

<% @products.each do |product| %>
   <%= image_tag(product.image_url) %>
<% end %>

如果每个产品都有多个图像,并且假设您在数据库中正确设置了一对多关系,您的 ERB 代码可能看起来像这样

<% @product.images.each do |image| %>
  <%= image_tag(image.url) %>
<% end %>