2014-02-20 73 views
1

林目前正在建設一個博客。儘管回形針照片在各個博客文章中彈出,但他們似乎並未在顯示所有博客文章的索引中彈出。 第13行似乎是問題所在。如何顯示回形針的上傳。

這是我爲我的帖子

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> 

index.html.erb它拋出我沒有方法錯誤。

請讓我知道,如果你需要了解更多信息 預先感謝您,我可以給你額外的文件!

回答

2

你不及格的URL圖像到image_tag幫手。

你需要這樣顯示圖像:

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

你試圖訪問@post實例變量,但實例變量不存在。相反,你的循環中,你應該訪問post局部變量,例如:

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

還要注意的是,從the documentation,正確的語法來訪問Picture實例的變化包括使變異名稱爲url屬性:

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

正如喬恩所說,你需要使用.url方法您picture對象(official documentation)上:

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

回形針

這樣做的原因是回形針實際上創建了自己的picture對象&重視幾種方法到(url是其中之一)。這意味着每次顯示帖子的圖像時都需要撥打url以加載該文件

通常情況下,您可以調用實例或局部變量的方法,但由於Paperclip實際上會創建自己的對象,因此您必須使用其內置的方法來得到它的正常工作

+0

謝謝你,我很欣賞的額外信息。 – nadia