Rails: Как наблюдать записи соединения, которые на самом деле не имеют модели? - PullRequest
5 голосов
/ 30 декабря 2008

Можно ли с помощью Observer наблюдать за созданием записей JOIN? Например, у вас есть пользовательская модель, у которой есть_and_belongs_to_many книжные модели. Можно ли отслеживать записи books_users по мере их создания или удаления, или у меня должна быть модель BookUser для этого?

Пример того, что я хочу наблюдать:

User.books << book

OR

User.books.push(book)

OR что угодно!

Спасибо

Дейв К.

1 Ответ

4 голосов
/ 30 декабря 2008

Это точная причина, по которой вы должны использовать has_many: through вместо has_and_belongs_to; Это позволяет вам создать модель BookUser, в которой могут использоваться обычные обратные вызовы / наблюдатели activerecord (например, after_save). Этот сайт лучше объясняет различия, http://blog.hasmanythrough.com/2006/4/20/many-to-many-dance-off

...