2

必要以上のクエリを実行していないことを確認するテストを作成しようとしています。ActiveRecord テストケースを見つけて、それを継承しようとしました。このテスト ケースには、assert_queries(num) などの便利なメソッドがいくつかあります。問題 - 3.2.12 では動作しないようで、推奨されていません。

クエリログにアクセスできる場所はありますか? テストケースの1つで、クエリログオブジェクトを検査しようとして、pry shellを開いています。サイコロはありません。

これらの線に沿って少し - モデルの外部でコールバックを登録する機能はありますか? たとえば、すべてのオブジェクト保存メソッドをリッスンするブロックを登録したいとします。

4

1 に答える 1

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を参照してください。

于 2013-03-04T18:07:38.063 に答える