我有一個Ticket and Event模型,其中的關係是事件有許多票據。 Ticket模型具有列串行開始值和串行結束值,表示該事件的有效串行節點的範圍。使用來自另一個模型的數據進行Rails範圍驗證
我想在創建時驗證票證,以便如果使用超出該範圍的序列號創建票證,系統將發出錯誤說明範圍無效。
我目前在我的票模型驗證是另一種驗證,以顯示這是140000和149999之間
validates :serial_number,
presence: true,
numericality: {
only_integer: true,
:greater_than_or_equal_to => 140000,
:less_than => 149999,
:message => "is invalid" },
:uniqueness => { :message => "%{value} has already been taken" }
我需要從事件模型中獲取數據,並把它所有的事件有效的序列號進入票證驗證。 Rails是否允許在模型中使用類似的東西?我應該在控制器中執行嗎?
解決方案中的小錯誤:'驗證:serial_number_valid'應該是'validate:serial_number_valid'。否則,就像一個魅力,謝謝! – 2014-09-19 18:53:15
我鏈接到源的好東西:)我更新了答案。很高興我能幫上忙! – awendt 2014-09-19 20:20:31