2014-02-20 3 views
1

Im в настоящее время создает блог. Пока фотографии скрепки появляются внутри отдельных сообщений в блоге, они, похоже, не появляются в индексе, где отображаются все сообщения в блоге. 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> 

он бросает мне ошибку нет метода.

Пожалуйста, дайте мне знать, если я могу предоставить вам дополнительные файлы, если вам нужна дополнительная информация. Заранее благодарю вас!

ответ

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) %> 

Paperclip

Причиной этого является Paperclip фактически создает свой собственный объект picture & придает несколько методов в том, что (url будучи один из них). Это означает, что вы должны звонить url каждый раз, когда вы показываете изображение сообщения, чтобы загрузить его.

Как правило, вы сможете вызывать методы на своих экземплярах или локальных переменных, но поскольку Paperclip фактически создает свой собственный объект, вы можете должны использовать свои встроенные методы, чтобы заставить его работать правильно.

+0

Благодарим вас, я ценю дополнительную информацию. – nadia

Смежные вопросы