工人/工作/订单的模型关系全部同步工作

时间:2017-04-22 02:04:26

标签: ruby-on-rails ruby postgresql

我正在尝试让客户放置Order,当他们放置Order时,status: uncompleted数据库条目中会有Order

Worker可以声明其中一个Order并开始Job。当Worker采用Order并将其设为Job时,我正在尝试设置Order状态status: inprogressJob状态{ {1}}然后当status: inprogress完成Worker时,Job状态应为Orderstatus: completed状态为Job

我想知道我是否设置了我的模型关系,以便在status: completed创建{status时能够更改Order JobWorker的正确方法{1}}在PostgreSQL数据库中。

我的模型设置如下:

worker.rb

Job

order.rb

devise :database_authenticatable, :registerable,
     :recoverable, :rememberable, :trackable, :validatable

has_many :jobs

job.rb

belongs_to :job

1 个答案:

答案 0 :(得分:0)

您可以使用sql triggersActiveRecord callbacks来实现此类功能。特别是after_update callback。这个想法是当你更新某些代码执行的记录数据时。

或者您可以使用状态机宝石来管理您的状态。例如,AASM gem内置了回调函数,这些函数在状态发生变化时执行。