如何显示回形针的上传。



我目前正在建立一个博客。虽然回形针照片在单个博客文章中弹出,但它们似乎不会在索引中弹出,索引中显示了所有博客文章。第 13 行似乎是问题所在。

这是我的索引.html.erb 我的帖子

10   <% @posts.each do |post| %>
11       <tr>
12       <td><%= link_to  post.title, post_path(post) %></td>
13       <td><%= image_tag @post.picture(:medium) %></td>
14       <td><%= post.text %></td>
15       <td><%= link_to 'Show', action: :show, id: post.id %></td>
16       <td><%= link_to 'Edit', action: :edit, id: post.id %></td>
17       <td><%= link_to 'Destroy', { action: :destroy, id: post.id },
18                       method: :delete, data: { confirm: 'Are you sure?' } %></td>

它给我抛出了一个无方法错误。

如果您需要更多信息,请告诉我是否可以为您提供额外的文件提前谢谢你!

您不会将图像的 URL 传递给image_tag帮助程序。

您需要像这样显示图像:

<%= image_tag post.picture.url(:medium) %>

您正在尝试访问@post实例变量,但该实例变量不存在。相反,在你的循环中,你应该访问你的post局部变量,如下所示:

<%= image_tag post.picture.url(:medium) %>

另请注意,从文档中看,访问Picture实例变体的正确语法涉及将变体名称传递给 url 属性:

post.picture(:medium) # Invalid
post.picture.url(:medium) # Valid!

正如 Jon 所提到的,你需要在 picture 对象上使用 .url 方法(官方文档):

<%= image_tag post.picture.url(:medium) %>

回形针

这样做的原因是回形针实际上创建了自己的picture对象,并附加了几种方法(url就是其中之一)。这意味着您必须在每次显示帖子的图像时调用url才能加载它

通常,您可以在实例或局部变量上调用方法,但是由于回形针实际上创建了自己的对象,因此您必须使用其内置方法才能使其正常工作

最新更新