Ruby on rails 无法创建活动记录关联

Ruby on rails 无法创建活动记录关联,ruby-on-rails,activerecord,rails-activerecord,Ruby On Rails,Activerecord,Rails Activerecord,这是一个非常简单的活动记录关联,我正在尝试创建,令人沮丧的是,它没有被成功地创建 我有两个模型,post和user。 User.rb什么都没有,只有有很多:帖子 而Post.rb除了属于:user之外什么都没有。 我已经运行了rakedb:migrate并验证了我的posts表中有一个user\u id列 但是,当我转到控制台时,我无法在新对象之间建立关联 首先,我创建一个新的用户实例,如max=User.create(:name=>“max”) 接下来,我创建一个新的Post实例,如Post=

这是一个非常简单的活动记录关联,我正在尝试创建,令人沮丧的是,它没有被成功地创建

我有两个模型,post和user。 User.rb什么都没有,只有
有很多:帖子
而Post.rb除了
属于:user
之外什么都没有。 我已经运行了rakedb:migrate并验证了我的posts表中有一个user\u id列

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

首先,我创建一个新的用户实例,如
max=User.create(:name=>“max”)
接下来,我创建一个新的Post实例,如
Post=Post.create(:user\u id=>1,title=>FirstPost”)

然后我尝试键入
max.posts
,但得到一个
NoMethodError未定义的方法'post='
如果我尝试像
max.post=post
那样设置关联,我会得到相同的错误

最后,我尝试向用户模型添加
attr\u accessor:posts

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


我错过了什么

这是因为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

这是因为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

post de full error请注意,我添加了
attr\u accessor:posts
,我不再收到错误,只是
nil
您可以添加完整的代码、完整的错误以及您正在做的事情的日志吗?”我这样做了,但得到的结果是“没有真正起作用。请删除完整错误。我添加了
attr\u accessor:posts
,我不再收到错误,只是
nil
你能添加完整的代码、完整的错误以及你正在做的事情的日志吗?”我这样做了,但得到的结果是“不起作用”。看看“替代方法”——所以我需要在我的
posts
表中有一个
user
列,对吗?为什么这样做有效,但设置
user\u id
属性不起作用?您可以指定user\u id“1”,它可能不是最后创建的用户的id。查看“替代方法”-因此我需要在
posts
表中有一个
user
列,对吗?为什么这样做会起作用,但设置
user\u id
属性不起作用?您可以在其中指定user\u id“1”,该id可能不是上次创建的用户的id。