0

我正在创建一个 Rails 应用程序,当有人搜索某个属性然后单击以查看更多详细信息时,我想向他们展示该属性的属性详细信息和图像。我已经弄清楚了包含所有属性详细信息的表格,并且我已将图像上传到 Amazon S3,但无法弄清楚如何构建图像 url:

数据库中的所有属性在主数据库表中都有一个 sysid,例如 335758034,并且该 sysid 包含在 S3 图像 url 中,并且图像编号附加到该 url 的末尾,因此可以计算出像这样的 url所以:

https://s3.amazonaws.com/images732/Photo335758034-3.jpeg

表格中的一列告诉您一个属性有多少图像。所以如果你知道有 5 张图片,我只需要像这样循环遍历它们:

https://s3.amazonaws.com/images732/Photo + sysid-1.jpeg

https://s3.amazonaws.com/images732/Photo + sysid-2.jpeg

https://s3.amazonaws.com/images732/Photo + sysid-3.jpeg

https://s3.amazonaws.com/images732/Photo + sysid-4.jpeg

https://s3.amazonaws.com/images732/Photo + sysid-5.jpeg

我怎么做?非常感谢任何帮助,谢谢,亚当

更新:

结果是这样的:

<table summary="Property images">
    <% (1..@property.image_count).each do |photo| %>
<tr>
  <td><%= image_tag("https://s3.amazonaws.com/images732/Photo#{@property.sysid}-#{photo}.jpeg") %></td>
</tr>

<% end %>

4

2 回答 2

0

在 Rails 中,

(1..5).each do |n|
  image_tag "https://foo.com/photo/photo-#{n}.jpg"
end

当然,不是像本例中那样遍历范围,您可以直接遍历您想要的任何内容。

于 2012-05-23T17:27:54.420 回答
0

您可能需要考虑使用回形针来帮助 rails 直接与 S3 通信。您可以创建一个包含照片的表,并将属性记录设置为 has_many :photos。那时很容易引用属性对象上的照片集合。就像是

@property.photos.each do |photo|
   image_tag photo.url
end

这样你就可以让 Rails 处理所有的背景内容。有关使用回形针和 s3 的信息,请查看这些

http://doganberktas.com/2010/09/14/amazon-s3-and-paperclip-rails-3/

http://railscasts.com/episodes/134-paperclip

于 2012-05-23T17:35:11.250 回答