我正在尝试编写一个测试,以确保我们没有运行超过必要的查询。我找到了ActiveRecord测试用例并尝试从中继承。这个测试用例有一些有用的方法,比如assert_queries(num)。问题 - 它似乎在3.2.12中不起作用,并且已被弃用。
我可以在哪里访问查询日志吗?我在我的一个测试用例中打开了pry shell,试图检查一些查询日志记录对象。没有骰子。
沿着这些方向 - 有什么设施可以在模型之外注册回调吗?例如,我想注册一个侦听所有对象保存方法的块。
答案 0 :(得分:2)
"有没有在模型之外注册回调的工具?"
ActiveRecord :: Observer应该完全按照你的意愿行事。此代码'观察'评论模型:
class CommentObserver < ActiveRecord::Observer
def after_save(comment)
Notifications.comment("admin@do.com", "New comment was posted", comment).deliver
end
end
有关更多示例和高级用法,请参阅http://api.rubyonrails.org/classes/ActiveRecord/Observer.html