我有一个简单的Photo
模型:
class Photo < ActiveRecord::Base
attr_accessible :image, :thumb, :title
end
在特定照片的记录视图中,erb:
<p id="notice"><%= notice %></p>
<p><%= image_tag @photo.image if @photo.image? %></p>
<%= link_to 'Edit', edit_photo_path(@photo) %> |
<%= link_to 'Back', photos_path %>
生成以下 html 片段(在 body 标记中):
<p id="notice"></p>
<p><img alt="Img_8283" src="/photo/image/1/IMG_8283.JPG" /></p>
<a href="/photos/1/edit">Edit</a> |
<a href="/photos">Back</a>
这很好,因为照片存储在public/photo/image/1/IMG_8283.JPG
.
但是,在索引视图中,我有这个 erb 代码:
<% @photos.each do |photo| %>
<tr>
<td><%= photo.title %></td>
<td><%= photo.thumb %> | <%= image_tag photo.thumb if photo.thumb? %></td>
<td><%= link_to 'Show', photo %></td>
</tr>
<% end %>
这会产生这个 html 源代码片段:
<tr>
<td>IMG_8283.JPG</td>
<td>photo/thumb/1/IMG_8283.JPG | <img alt="Img_8283" src="/assets/photo/thumb/1/IMG_8283.JPG" /></td>
<td><a href="/photos/1">Show</a></td>
</tr>
为什么在第二种情况下有/asset
前缀而不是第一种?我本来希望<img>
标签引用相同的基本位置路径(这也是我的偏好)。