NameError: неопределенная локальная переменная или метод "сообщение"

Пробую гем mailboxer и в представлениях я могу ссылаться на аватар отправителя в шоу сообщений, и он работает отлично, но в представлении беседы в папке «Входящие» я получаю undefined local variable or method `message' с тем же кодом. Я внес несколько изменений в код, но не могу найти правильную строку, которая будет отображать аватар отправителя.

Просмотр входящих беседы:

<%= content_tag_for(:li, conversation) do |conversation| %>
    <%= link_to conversation.subject, conversation%> - <%= conversation.updated_at.strftime("%B %-d, %Y %l:%M%P") %>
    | From: <% conversation.participants.each do |participant| %>
     <% if participant != current_user %>
      <%= link_to participant.username, participant %>  
     <% end %>
    <% end %>
    <%= image_tag message.sender.avatar.image_url(:avatar) %>
|
    <% if conversation.is_completely_trashed?(current_user)%>
      <%= link_to 'Untrash', [:untrash, conversation], method: :post%>
    <%else%>
      <%= link_to 'Move to trash', [:trash, conversation], method: :post%>

<% end %>
<% end %>

Просмотр сообщения:

<%= conversation.subject %>

From:
<% conversation.participants.each do |participant| %>
 <% if participant != current_user %>
  <%= link_to participant.username, participant %>
 <% end %>
<% end %>
<%= content_tag_for(:li, conversation.receipts_for(current_user)) do |receipt| %>
 <% message = receipt.message %>
 From: <%= message.sender.username %>
<%= image_tag message.sender.avatar.image_url(:avatar) %>

 <%= simple_format h message.body %>

 Sent <%= conversation.updated_at.strftime("%a, %m/%e/%Y %I:%M %p") %>

<% end %>

<%= render 'messages/form', conversation: conversation %>

person Cornelius Wilson    schedule 27.02.2014    source источник
comment
где вызов рендеринга для представлений?   -  person Малъ Скрылевъ    schedule 27.02.2014


Ответы (1)


Установите значение переменной message в представлении «Входящие беседы», как вы это сделали в представлении «Сообщение».

<% message = receipt.message %> ## In Message View

Переменная message не определена в представлении беседы, что является причиной ошибки.

person Kirti Thorat    schedule 27.02.2014
comment
Я сделал это раньше. Я добавил <%= content_tag_for(:li, conversation.receipts_for(current_user)) do |receipt| %> с установкой переменной сообщения, и это дало мне undefined method `image_url' for nil:NilClass - person Cornelius Wilson; 28.02.2014
comment
Ошибка, которую вы получили, связана с тем, что messagevariable не определена. Что вы сейчас спрашиваете, я не совсем понимаю? Вы установили переменную, и теперь вы получаете другую ошибку? - person Kirti Thorat; 28.02.2014
comment
После установки переменной ошибка теперь undefined method `image_url' for nil:NilClass - person Cornelius Wilson; 28.02.2014
comment
Проверьте, загружен ли для этого конкретного отправителя avatar файл или нет. Эта ошибка возникает только в том случае, если у отправителя нет аватара. - person Kirti Thorat; 28.02.2014
comment
Вместо того, чтобы комментировать здесь, попробуйте зайти в чат chat.stackoverflow.com/rooms/48530/ror, который мы может лучше отлаживать - person Kirti Thorat; 28.02.2014
comment
Ты был прав. У меня был один аккаунт, которому не был назначен аватар. Совершенно не обращайте на это внимания. Спасибо вам за помощь! - person Cornelius Wilson; 28.02.2014
comment
Надеюсь, вы примете ответ на исходный вопрос и, если возможно, тоже проголосуете. :) - person Kirti Thorat; 28.02.2014