假设我有一个模型topic
,它有一个moderator
。我想为一个主题建立一个新帖子。
在我的控制器中:
@topic = Topic.find(:id)
@moderator = @topic.moderator.build # error points to this line
错误:
undefined method `build' for nil:NilClass
答案 0 :(得分:1)
如果关系是在模型中声明的,只要它是has_many就可能已经声明:
has_many :posts
所以你需要打电话:
@post = @topic.posts.build
禁止你有一个has_one关系:
has_one :moderator
@moderator = @post.build_moderator
解决方案:
Using build with a has_one association in rails
另请参阅Rails指南:关联。 http://guides.rubyonrails.org/association_basics.html