拦截has_many关联调用

时间:2016-09-19 15:08:53

标签: ruby-on-rails activerecord associations

有两种型号

class Order < ...
  has_many :products
  def products
    products.count.zero? ? <some action> : products  
  end
end

class Product < ...
end

我需要拦截订单上的产品调用:Order.first.products如果没有产品,则用一些自定义逻辑替换输出,如果有,则返回相关产品。 我尝试过read_attribute但没有成功。

1 个答案:

答案 0 :(得分:0)

您可以简单地扩展或覆盖您需要的任何方法:

class Order < ActiveRecord::Base
  def products
    my_logic || super
  end
end