我正在建立一个博客,我是一个Rails新手。怀疑是关于如何建立这些模型之间的联系:帖子和语言。
只有两种语言,每篇文章只会(属于/拥有)一种语言。我认为正确的事情是:
class Post < ActiveRecord::Base
belongs_to :language
end
class Language < ActiveRecord::Base
has_many :posts
end
这是正确的方法吗?原因听起来更自然地认为帖子有一个语言和一个语言belongs_to_many帖子但这种关联在rails中是不可能的,我错了吗?。
抱歉这样的新手问题。提前谢谢。
答案 0 :(得分:1)
你是对的。如果您在多对一关系中有两个模型,则唯一的选择是将has_many
放在“one”模型上,将belongs_to
放在“many”模型上。因此,在您的情况下,您确实需要您提供的代码段。
请注意,这意味着您的posts
表格会带有language_id
列(感觉正确),并且您的代码会引用post.language
和language.posts
。