class Order < ActiveRecord::Base
has_many :line_items
end
order = Order.find params[:id]
order.line_items.where("stock_count = ?", 0).size
可以改写为以下的形式:
class Order < ActiveRecord::Base
has_many :line_items do
def out_of_stock
where("stock_count = ?", 0)
end
end
end
order = Order.find params[:id]
order.line_items.out_of_stock.size
在某些场合下,我们想在has_many
的关系后执行一个自定义的方法,这个时候可以使用has_many
的extension
功能
本文由OneAPM工程师原创,欢迎大家来OneAPM做客,共同讨论各种技术问题,OneAPM提供包括Ruby在内的主流 6 种编程语言,以及浏览器端、移动端、服务器软硬件环境的性能监测服务。