Rails - 将方法委托给has_many关系中的最后一条记录

时间:2017-07-06 17:33:00

标签: ruby-on-rails activerecord

我有一个带有has_many B模型关联的A模型。 我想在我的A模型中做这样的事情:

def my_method
 self.bs.last.my_method
end

换句话说,我想将my_method委托给我在关联中的最后一个B对象。是否可以通过代表实现?认为它会更优雅。谢谢!

1 个答案:

答案 0 :(得分:2)

我认为如果你创建一个方法来返回最后一个'bs'对象,你可以这样做:

def last_bs
  self.bs.last
end

然后委托:

delegate :my_method, to: :last_bs

更新:这也可以通过以下方式实现:

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