开发者

Unable to display associated model's fields

Hey all, I'm having a pretty weird problem and am having trouble isolating the cause. I get the feeling its a simple solution, but I was hoping for a nudge in the right direction. I have the following models:

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

The Pnote portion of m开发者_如何转开发y schema looks as so:

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

I'm trying to display all of the Pnotes associate with a given Preport on the show page of the Preport

My Preport Controller has the following code for the show action:

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

So now in my show.html.erb in the Preports folder, I am trying to display a list of the Pnotes as such:

<ul>
<% @pnotes.each do |pnote| %>
 <li><%= pnote.user.login %><span>-<%=pnote.content %></span></li>
<% end %>
</ul>

"login" is the standard field that came along with the Devise Authentication Gem.

However, this gives me the following error:

undefined method `login' for nil:NilClass

If I change the view to this:

  • <%= pnote.user%>-<%=pnote.content %>
  • I get :

    #<User:0x106c25888>-Testing
    

    , so it appears that it is identifying the associated user, but unable to grab its attributes.

    Any advice would be greatly appreciated! I feel like there is a fairly small oversight going on here, but I am unable to distinguish from exactly where

    Thanks!


    Unless you're using a very old version of Devise that I'm not aware of, the User model wouldn't have a login attribute.

    Try email instead.

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新问答

    问答排行榜