Rails: has_many_and_belongs_to на 3 модели - PullRequest
0 голосов
/ 12 декабря 2011

У меня есть 3 модели в моем Ruby on Rails, скажем, издатель, автор и книга. Я хочу создать отношения между многими.

Я создал таблицу с именем author_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

В нем говорится (и это правильно), что система не находит таблицу с именем author__books.

Пожалуйста, помогите

P.S. пожалуйста, относитесь к вышеуказанным моделям, например, Они не настоящие имена в моем приложении.

Спасибо

Ответы [ 2 ]

1 голос
/ 12 декабря 2011

Вы должны создать 3 отдельные таблицы:

  1. authors_books
  2. books_publishers
  3. authors_publishers

и вы, вероятно, authors_publishers ассоциация избыточны, потому что вы могли бы сделать то же самое с author has_many :publishers, :thorough => :books

0 голосов
/ 12 декабря 2011

Я недавно написал статью об ассоциациях активных записей, вот ссылка:

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

Я думаю, что это может включать символ: through.Я ни в коем случае не эксперт по рельсам (пытаюсь стать им!), Но, надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...