这两种模型之间的正确联系是什么?

时间:2011-07-08 16:06:37

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

我正在建立一个博客,我是一个Rails新手。怀疑是关于如何建立这些模型之间的联系:帖子和语言。

只有两种语言,每篇文章只会(属于/拥有)一种语言。我认为正确的事情是:

class Post < ActiveRecord::Base
  belongs_to :language
end

class Language < ActiveRecord::Base
  has_many :posts
end

这是正确的方法吗?原因听起来更自然地认为帖子有一个语言和一个语言belongs_to_many帖子但这种关联在rails中是不可能的,我错了吗?。

抱歉这样的新手问题。提前谢谢。

1 个答案:

答案 0 :(得分:1)

你是对的。如果您在多对一关系中有两个模型,则唯一的选择是将has_many放在“one”模型上,将belongs_to放在“many”模型上。因此,在您的情况下,您确实需要您提供的代码段。

请注意,这意味着您的posts表格会带有language_id列(感觉正确),并且您的代码会引用post.languagelanguage.posts