0
私はサルパッチhttps://stackoverflow.com/a/21446021にこの答えを見ています。宝石の中で1つのメソッドをモンキーパッチすると、私のアプリにアクティブなレコードがあることを知らせることができますか?
この例では、gem(他の誰かのライブラリ)にメソッドsomeMethod()があり、最終的には私がパッチしたメソッドを呼び出します。
私のアプリは、この
activeRecord = ... # gets an ActiveRecord object that I want to update
options = {..}
@gem_object = SomeLibrary::Class.new(options)
@gem_object.someMethod()
今のsomeMethod(ように見える)は、最終的にパッチを当てたメソッドを呼び出すために起こっています。パッチを適用したメソッドにactiveRecordを認識させ、更新できるようにしたい。 someMethod()が呼び出されたときにスタックトレース内のすべてのメソッドにパラメータとしてactiveRecordを追加することを避けることができるかどうかは疑問です。
私はそこにオブジェクトを渡す理由はありません。パッチを当てた方法でモデルにアクセスできます。 –
SQLを再実行しないでしょうか?私のアプリでは、すでにアクティブなレコードオブジェクトのインスタンス化があります。 – gravitas
それはSQLを再実行するでしょうが、それは本当に悪いことですか?クエリを2回対して2回実行すると、実際にどれだけのパフォーマンスが得られますか?あなたのレールコンソールでクエリ時間を見ることができます - 単純なクエリはミリ秒かかる。 –