如何显示回形针的上传内容。

时间:2014-02-20 08:37:05

标签: ruby-on-rails paperclip

我正在建立一个博客。当回形针照片弹出个别博客文章时,它们似乎不会在索引中弹出,其中显示所有博客帖子。 第13行似乎是问题所在。

这是我的帖子的index.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>

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

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

3 个答案:

答案 0 :(得分:2)

您没有将图片的网址传递给image_tag帮助者。

你需要像这样显示你的图像:

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

答案 1 :(得分:2)

您正在尝试访问@post实例变量,但该实例变量不存在。相反,在循环中,您应该访问post本地变量:

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

另请注意,从the documentation开始,访问Picture实例变体的正确语法包括将变体名称传递给url属性:

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

答案 2 :(得分:1)

如Jon所述,您需要在.url对象(official documentation)上使用picture方法:

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

<强>回形针

原因是Paperclip实际创建了自己的picture对象&amp;附上几种方法(url是其中之一)。这意味着每次显示帖子的图片时都必须致电url以使其加载

通常,您可以在实例或局部变量上调用方法,但是当Paperclip实际创建自己的对象时,您必须使用其内置方法才能使其正常工作