1
我有一個Rails應用程序,其中活動是具有以下屬性的資源之一:如何在rails中執行模型驗證?
- 狀態(「進行中」記錄活動的狀態,「完全」)
- 開始(年月日時活動啓動)時,活動結束
- 結束(日期)
我想「進行中」創建用於身份活動的新紀錄,因爲沒有與同一統計沒有現有活動我們。我相信這可以通過使用模型驗證來完成,但是對於rails而言,我不知道如何實現。
我有一個Rails應用程序,其中活動是具有以下屬性的資源之一:如何在rails中執行模型驗證?
我想「進行中」創建用於身份活動的新紀錄,因爲沒有與同一統計沒有現有活動我們。我相信這可以通過使用模型驗證來完成,但是對於rails而言,我不知道如何實現。
如果status
是enum
你可以這樣做:
class Activity < ApplicationRecord
enum status: [ :in_progress, :complete ]
validates_uniqueness_of :status, if: :in_progress?
end
此驗證限制你只有一個activity
與in_progress
狀態。
此外,如果status
是一個字符串,你可以這樣做:
class Activity < ApplicationRecord
validates_uniqueness_of :status, if: proc { |activity| activity.status == 'in_progress' }
end
你使用'status'屬性'enum'? –
我現在使用的是'string',但'enum'會更有意義 –