【发布时间】:2014-12-16 13:49:47
【问题描述】:
我正在学习 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”的方法,其中每个类的对象对应于数据库中的特定行,并且由于它们的关联/关系,我可以使用这些方法吗?
【问题讨论】:
-
您是否阅读过有关该主题的 Rails 指南:guides.rubyonrails.org/association_basics.html
-
是的,我阅读了 rails 指南。我试图巩固我对这个主题的理解,我愿意接受另一种解释。
-
好酷 - 只是确保你有一个共同的基础开始。
-
belongs_to :user和has_many :posts行自动 为关联添加了大量方法。所以,是的,因为关联,您可以使用它们。
标签: ruby-on-rails ruby activerecord associations