Ruby on rails RubyonRails属于vs.有一个关联-需要澄清

Ruby on rails RubyonRails属于vs.有一个关联-需要澄清,ruby-on-rails,associations,Ruby On Rails,Associations,在下面的例子中,在Chlid类中使用belishto:mother和has\u one:mother有什么区别?我一直在阅读Rails文档,除了阅读它所涉及的语义之外,我看不出其中任何一个会有什么不同 据我所知,各种关联为每个类添加了额外的方法,但我还没有找到文档来列出每个关联的方法是什么以及它们的作用 class BiologicalMother < ActiveRecord::Base has_many :children end class Child < ActiveR

在下面的例子中,在Chlid类中使用belishto:mother和has\u one:mother有什么区别?我一直在阅读Rails文档,除了阅读它所涉及的语义之外,我看不出其中任何一个会有什么不同

据我所知,各种关联为每个类添加了额外的方法,但我还没有找到文档来列出每个关联的方法是什么以及它们的作用

class BiologicalMother < ActiveRecord::Base
  has_many :children
end

class Child < ActiveRecord::Base
  belongs_to :biological_mother
end
class/other
在这一点上,它几乎是纯语义的。使用mongoid,我知道外键存储在带有
所属
的模型上,所以ActiveRecord也可能有类似的情况。

在您的例子中,
有许多
所属
不仅在语义上而且在rails的工作方式上都是正确的方法。外键始终存储在关联的
所属部分。
一个有效的
有一个
场景可能类似于有一个
购买
模型,它
有一个
账单地址

例如:

class Purchase
   has_one :billing_address
end

class BillingAddress
   belongs_to :purchase #this holds the foreign key - purchase_id
end
对于您的情况,您不能使用
在关联的一侧有多个
,而在关联的另一侧有一个
,因为
属于
部分始终持有外键


让我知道这是否适用于您。

这是我需要帮助我理解的解释,特别是我不能在相反的模型上使用has_-one和has_-many[尽管这似乎令人沮丧,但我不知道为什么]。谢谢下面是关于“在属于和拥有之间进行选择”的官方文档,其中写道:
“区别在于外键的放置位置(它放在表中,用于声明属于关联的类)”