2017-07-06 10 views
2

has_many Bモデルの関連付けを持つAのモデルがあります。 私はAモデルでは、このような何かをしたいと思います:Rails - has_many関係の最後のレコードへの代理メソッド

def my_method 
self.bs.last.my_method 
end 

言い換えれば、私は関連して私の最後のBオブジェクトにmy_methodを委任したいと思います。デリゲートで達成することは可能でしょうか?よりエレガントになると思います。ありがとうございました!

def last_bs 
    self.bs.last 
end 

その後、委任:

答えて

2

は、私はあなたが最後の「BS」オブジェクトを返すメソッドを作成する場合はそれを行うことができると思い

delegate :my_method, to: :last_bs 

UPDATE:これもによって達成することができます。

delegate :my_method, to: "bs.last", allow_nil: true 
+0

ありがとう、仲間!これはうまくいきましたが、あなたの答えを更新できる場合は、デリゲートで直接行う方法を教えてください:delegate:my_method、to: "bs.last"、allow_nil:true –

関連する問題