Rails:如何观察实际上没有模型的连接记录?

Dav*_*vid 5 ruby ruby-on-rails associations has-and-belongs-to-many observer-pattern

是否可以使用Observer观察JOIN记录的创建?例如,您有一个用户模型has_and_belongs_to_many图书模型.是否可以在创建或删除books_users记录时对其进行监控,或者我是否必须拥有BookUser模型才能执行此操作?

我要观察的例子:

User.books << book
Run Code Online (Sandbox Code Playgroud)

要么

User.books.push(book)
Run Code Online (Sandbox Code Playgroud)

管他呢!

谢谢,

戴夫K.

cap*_*tej 4

这就是您应该使用 has_many :through 而不是 has_and_belongs_to 的确切原因;它允许您创建一个 BookUser 模型,其中可以使用常规的 activerecord 回调/观察者(例如 after_save)。该网站更好地解释了这些差异,http://blog.hasmanythrough.com/2006/4/20/many-to-many-dance-off