我创建了一个rails应用,当有人搜索某个属性然后点击查看更多详细信息时,我想向他们展示属性详细信息和该属性的图像。我已经找到包含所有属性详细信息的表格,并且我已将图像上传到Amazon S3,但无法解决如何构建图像网址的问题:
数据库中的所有属性在主数据库表中都有一个sysid,例如335758034,并且该sysid包含在S3图像URL中,并且图像编号附加到该URL的末尾,因此它是#s可以像这样计算出网址:
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 %>
答案 0 :(得分:0)
在Rails中,
(1..5).each do |n|
image_tag "https://foo.com/photo/photo-#{n}.jpg"
end
当然,不是像本例中那样迭代一个范围,而是可以直接遍历你想要的任何东西。
答案 1 :(得分:0)
您可能需要考虑使用paperclip来帮助rails直接与S3通信。您可以创建一个包含照片的表格,并将属性记录设置为has_many:photos。那时很容易引用属性对象上的照片集合。像
这样的东西@property.photos.each do |photo|
image_tag photo.url
end
通过这种方式,您可以使用rails来处理所有背景内容。有关使用paperclip和s3的信息,请查看这些
http://doganberktas.com/2010/09/14/amazon-s3-and-paperclip-rails-3/