了解Rails关联

时间:2014-12-16 05:24:42

标签: ruby-on-rails ruby activerecord associations

我正在学习Rails,我正在尝试将Ruby与创建关联时正在发生的事情联系起来。例如:

class Post < ActiveRecord::Base
  belongs_to :user
end

class User < ActiveRecord::Base
  has_many :posts
end

我在线阅读了一篇解释,其中将belongs_to和has_many的使用与Ruby中的attr_accessor联系起来。这有点令人困惑......怎么会这样?据我所知,这设置了Post和User之间的1:M关联,特别是Post有一个包含用户ID的外键。在rails控制台中,我可以执行以下操作:

user = User.first
user.posts 
user2 = User.create(username: 'some guy').save
post2 = Post.new(title: 'stuff', body: 'some more stuff')
user2.posts << post2 

这些类似于'getter'和'setter'的方法,其中每个类的对象对应于数据库中的特定行,我可以使用这些方法,因为它们的关联/关系?

1 个答案:

答案 0 :(得分:0)

要回答您的确切问题,答案是&#34;有点是,有点不&#34;。

内部设置关联的rails非常复杂。是的,涉及getter / setter方法,是的,指向表行涉及......但这并不是Active Record所做的,并且它不仅仅是Active Record所做的。

如果你真的想知道Active Record的内容:你可以去查看the source code on github

如果您有更具体的问题......我建议您更新您的问题,并要求:)