【问题标题】:Rails: How to observe join records that don't actually have a Model?Rails:如何观察实际上没有模型的连接记录?
【发布时间】:2008-12-29 21:09:36
【问题描述】:

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

我想观察的例子:

User.books << book

User.books.push(book)

或 随便!

谢谢,

戴夫·K。

【问题讨论】:

    标签: ruby-on-rails ruby associations observer-pattern has-and-belongs-to-many


    【解决方案1】:

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

    【讨论】:

    • 我完全理解,但最初的设计只要求两者之间的关系——因此不需要模型。我会阅读您提供的链接,但我的问题只是它是否可以在没有模型的情况下观察到这一点?如果没有,那就是我要做的模型。
    • 你知道吗,读完这篇文章后,我立即意识到我确实需要 has_many,belongs_to - 我需要一个唯一的 id 和类型来保存到另一个表。谢谢你让我思考,我被卡住了。
    猜你喜欢
    • 2012-03-13
    • 1970-01-01
    • 1970-01-01
    • 2016-03-06
    • 2019-02-12
    • 1970-01-01
    • 2010-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多