2017-04-22 40 views
1

我試圖讓客戶放置一個Order,當他們放置一個Order時,它將在Order數據庫條目中有一個status: uncompleted所有工作同步的工人/工作/訂單的模型關係

A Worker可以聲稱其中一個Order s並開始Job。當Worker採取了Order,並使它成爲Job我試圖使Order狀態status: inprogressJob狀態status: inprogress,然後在Worker完成JobOrder狀態應該是status: completedJob狀態status: completed

如果我已經建立了我的模型關係的正確方法能夠改變OrderJobstatusWorker創建PostgreSQL數據庫內的Job我想知道。

我的模型建立像這樣:

worker.rb

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

has_many :jobs 

order.rb

belongs_to :job 

job.rb

belongs_to :worker 
has_one :worker 
+0

作業'belongs_to:worker'而不是'user',因爲在這個問題中沒有'User'模型。您可能也需要在數據庫中更改它。 – spickermann

+0

@spickermann感謝您指出了這一點!爲了清晰起見,我將其從用戶更改爲 – Jack

回答

0

你可以實現諸如功能通過使用sql triggersActiveRecord callbacks。特別是after_update callback。這個想法是當你更新一些代碼執行的記錄數據時。

或者您可以使用狀態機gems來管理您的狀態。例如,AASM gem已經構建了狀態更改時執行的回調。

+0

但您是否認爲我已正確設置模型關係? – Jack