【发布时间】:2014-03-13 02:26:01
【问题描述】:
我想在我编写的 rails 作用域中删除一个实例方法,这样我就可以拥有一个更好的、可链接的作用域。
我有一个模型 Offering,has_many :assets 和 Assets 有一个列 status。我在Offering 上创建了一个范围,如下所示:
scope :available, -> { where(approved_for_sale: true).reject{|offering| !offering.assets_ready} }
其中assets_ready 是Offering 上的一个方法:
def assets_ready
assets.inject(1) {|memo, asset| memo && asset.ready_status_symbol == :ready}
end
由于拒绝返回一个数组,我想找到一种方法来编写不需要实例方法的范围。
【问题讨论】:
标签: sql ruby-on-rails scope