Rails:has_many_and_belongs_to 3个型号

时间:2011-12-12 04:01:47

标签: ruby-on-rails

我的Ruby on Rails中有3个模型,例如出版商,作者和书籍。我想在他们之间建立多对多的关系。

我创建了一个名为authors_books_publishers的表,并在其中添加了has_many_and_belongs_to ..例如。

Author
has_many_and_belongs_to :books
has_many_and_belongs_to :publishers

Book
has_many_and_belongs_to :authors
has_many_and_belongs_to : publishers

Publisher
has_many_and_belongs_to :authors
has_many_and_belongs_to :books

但是当我尝试在作者中添加书籍时它不起作用

a = Author.new
b = Book.new 
a.books << b

它说(并且正确地说)系统找不到名为authors_books的表。

请帮忙

P.S。请将上述型号视为例如它们不是我应用中的真实姓名。

谢谢,

2 个答案:

答案 0 :(得分:1)

你必须创建3个单独的表:

  1. authors_books
  2. books_publishers
  3. authors_publishers
  4. 你可能authors_publishers关联是多余的b / c你可以用author has_many :publishers, :thorough => :books做同样的事情

答案 1 :(得分:0)

我刚才做了一篇关于活跃记录协会的文章,这里是链接;

http://mikeyhogarth.wordpress.com/2010/12/19/basic-activerecord-associations-overview/

我认为它可能涉及:通过符号。我绝不是一个铁路专家(试图成为一个!)但希望这会有所帮助。