【发布时间】:2016-01-30 09:37:47
【问题描述】:
在 Rails 中,有没有一种方法可以让我根据数据库中的更改自行调用方法?例如,假设我有两个类:Products 和 Orders。
订单有三个可能的枚举值:
class Order < ActiveRecord::Base
enum status: [:pending, :processing,:shipped]
belongs_to :products
end
我想批量处理Orders,所以当一个产品有 50 个订单时,我希望它设置与之关联的所有订单来处理。 Orders 默认为 :pending。要将订单更改为:processing,我会致电order.processing!。我可以在 Products 模型中编写一个方法,例如:
def process_orders
if self.orders.count=50
self.orders.each do |order|
order.processing!
end
end
问题是我必须调用process_orders 方法才能执行,有没有办法让它在产品有50 个订单后自动执行?
【问题讨论】:
标签: ruby-on-rails methods enums model state