典型的なhas_manyアソシエーションを想定
class Customer < ActiveRecord::Base
has_many :orders
end
class Order < ActiveRecord::Base
belongs_to :customer
end
注文のコレクションにメソッドを追加するにはどうすればよいですか?Customer
コードを整理するために、クラス内でこのメソッド(これは作成された例です)を再利用しようとしています。
def update_orders
ThirdPartyAPI.look_up(self.orders) do |order|
# Do stuff to the orders
# May need to access 'self', the Customer...
end
end
Order
クラス内にクラスに関する多くの知識が含まれているため、これは好きではありませんCustomer
。ThirdPartyAPIは複数の注文に対してバッチルックアップを実行できるため、注文からインスタンスメソッドを使用することはできません。Order
一連の注文とその親顧客から静的メソッドを作成して渡すことはできますが、これは不格好な感じがします。
これはrailsdocsで見つかりましたが、実際にこれを使用する方法の良い例は見つかりませんでした。他に方法はありますか?