Привет всем, у меня довольно странная проблема, и мне трудно определить причину.Я чувствую, что это простое решение, но я надеялся на толчок в правильном направлении.У меня есть следующие модели:
class User < ActiveRecord::Base
has_many :pnotes
class Pnote < ActiveRecord::Base
belongs_to :preport
belongs_to :user
class Preport < ActiveRecord::Base
has_many :pnotes, :dependent=>:destroy
Часть Pnote моей схемы выглядит так:
create_table "pnotes", :force => true do |t|
t.integer "preport_id"
t.integer "user_id"
t.text "content"
t.datetime "created_at"
t.datetime "updated_at"
end
Я пытаюсь отобразить все Pnotes, связанные с данным Preport настраница шоу Preport
Мой контроллер Preport имеет следующий код для действия show:
def show
@board = Board.find(params[:board_id])
@preport = @board.preport
@pnotes = @preport.pnotes
@pnote=@preport.pnotes.build
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @preport }
end
end
Так что теперь в моем show.html.erb в папке Preports я пытаюсьдля отображения списка Pnotes как такового:
<ul>
<% @pnotes.each do |pnote| %>
<li><%= pnote.user.login %><span>-<%=pnote.content %></span></li>
<% end %>
</ul>
"login" - это стандартное поле, которое поставляется вместе с Gem аутентификации Devise.
Однако, это дает мне следующую ошибку:
неопределенный метод `login 'для nil: NilClass
Если я изменю представление на это:
<% = pnote.user%> - <% =pnote.content%>
Я получаю:
#<User:0x106c25888>-Testing
, поэтому кажется, что он идентифицирует ассоциированного пользователя, но не может получить его атрибуты.
Любой совет будет принята с благодарностью!Я чувствую, что здесь происходит довольно небольшой надзор, но я не могу точно отличить, где
Спасибо!