无法创建活动记录关联

时间:2013-11-28 05:10:45

标签: ruby-on-rails activerecord rails-activerecord

这是一个非常简单的Active Record关联,我试图创建它并且令人沮丧的是没有成功。

我有两个模型,帖子和用户。 User.rb只有has_many :posts 和Post.rb只有belongs_to :user。 我运行了rake db:migrate并验证了我的posts表中有一个user_id列。

但是,当我进入控制台时,我无法在新对象之间建立关联。

首先,我创建了一个像max = User.create(:name=>"Max")这样的新用户实例 接下来,我创建一个新的Post实例,如post = Post.create(:user_id=>1, title=>"FirstPost")

然后我尝试输入max.posts,但获得NoMethodError undefined method 'post=' 如果我尝试设置max.post = post之类的关联,我会得到同样的错误。

最后,我尝试将attr_accessor :posts添加到用户模型中。

现在,我可以输入max.posts,但我只是nil

我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

那是因为User中没有'post ='方法。

尝试以下方法:

max = User.create(:name=> "Max")
max.posts.create(:title => "FirstPost")
max.posts

作为替代方式:

max = User.create(:name=> "Max")
post = Post.new(:user => max, :title => "FirstPost")
post.save
max.posts