我有一个地址表单,我想作为一个整体验证,而不是自己验证每个输入。我只能通过将line1,city,state,zip传递给自定义谓词方法来判断地址是否有效,以便它可以将它们作为一个单元进行检查。
我该怎么做?我只看到如何验证单个字段。
答案 0 :(得分:1)
更新 - 这是针对ActiveRecords而不是from IPython.core.display import HTML
pd.set_option('display.max_colwidth', -1)
df['DESCRICAO'] = df['DESCRICAO'].str.replace('\$', '\\$').str.replace('\n', '<br>')
HTML(df.to_html(escape=False))
gem。
请参阅本教程http://guides.rubyonrails.org/active_record_validations.html
从教程中引用,
您还可以创建验证模型状态的方法,并在错误集合无效时将其添加到错误集合中。然后,您必须使用
dry-validation
(API)类方法注册这些方法,并传入验证方法名称的符号。
validate
答案 1 :(得分:1)
似乎this "High-level Rules" example可以帮到你:
schema = Dry::Validation.Schema do
required(:barcode).maybe(:str?)
required(:job_number).maybe(:int?)
required(:sample_number).maybe(:int?)
rule(barcode_only: [:barcode, :job_number, :sample_number]) do |barcode, job_num, sample_num|
barcode.filled? > (job_num.none? & sample_num.none?)
end
end
barcode_only
一次检查3个属性。
所以你的代码可能是:
rule(valid_address: [:line1, :city, :state, :zip]) do |line, city, state, zip|
# some boolean logic based on line, city, state and zip
end