2
我想編寫一個自定義驗證對於給定的驗證電話:加載ActiveModel定製驗證紅寶石
class Worker
include ActiveModel::Validations
def initialize(graph_object)
@graph_object = graph_object
end
attr_accessor :graph_object
validates :graph_object, graph_object_type: {inclusion: [:ready, :active]}
end
class GraphObject
attr_accessor :state
end
我想根據GraphObject#state
驗證Worker#graph_object
。因此Worker
在GrapObject
中的傳遞位於:ready或:active狀態時有效。我想盡可能多地重用ActiveModel。
驗證文檔介紹了設置自定義驗證程序的過程,但我無法弄清楚如何執行此操作。
我想我要開始這樣的:
class GraphObjectTypeValidator < ActiveModel::EachValidator
def validate_each(record, attribute, value)
end
end
- 選項[:列入] = [:準備好了,:主動]
- 記錄是工人的實例(我想...)
- value我不知道(是
value = record.graph_object
?) - 屬性相同價值 - 不知道
也許validates :graph_object, graph_object_type: {inclusion: [:ready, :active]}
沒有定義吧?