无法显示关联模型的字段

时间:2010-12-29 15:07:56

标签: ruby-on-rails-3 devise

嘿所有,     我有一个非常奇怪的问题,并且无法隔离原因。我觉得这是一个简单的解决方案,但我希望能够朝着正确的方向努力。我有以下型号:

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

我正在尝试在Preport的显示页面上显示与给定Preport关联的所有Pnotes

我的Preport Controller具有以下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

所以现在在Preports文件夹中的show.html.erb中,我试图显示Pnotes的列表:

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

“login”是Devise Authentication Gem附带的标准字段。

然而,这给了我以下错误:

  

nil的未定义方法`login':NilClass

如果我将视图更改为:     

  • &lt;%= pnote.user%&gt; - &lt;%= pnote.content%&gt;
  • 我明白了:

    #<User:0x106c25888>-Testing
    

    ,因此它似乎正在识别关联用户,但无法获取其属性。

    任何建议都将不胜感激!我觉得这里有一个相当小的疏忽,但我无法区分确切的位置

    谢谢!

    1 个答案:

    答案 0 :(得分:1)

    除非您使用我不知道的非常旧版本的Devise,否则用户模型将没有login属性。

    请尝试email