我的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。请将上述型号视为例如它们不是我应用中的真实姓名。
谢谢,
答案 0 :(得分:1)
你必须创建3个单独的表:
authors_books
books_publishers
authors_publishers
你可能authors_publishers
关联是多余的b / c你可以用author has_many :publishers, :thorough => :books
做同样的事情
答案 1 :(得分:0)
我刚才做了一篇关于活跃记录协会的文章,这里是链接;
http://mikeyhogarth.wordpress.com/2010/12/19/basic-activerecord-associations-overview/
我认为它可能涉及:通过符号。我绝不是一个铁路专家(试图成为一个!)但希望这会有所帮助。