go *_*mal 13 ruby ruby-on-rails
在我的模型中,我有:
validate :my_custom_validation
def my_custom_validation
errors.add_to_base("error message") if condition.exists?
end
Run Code Online (Sandbox Code Playgroud)
我想在mycustomer vaildation中添加一些参数,如下所示:
validate :my_custom_validation, :parameter1 => x, :parameter2 => y
Run Code Online (Sandbox Code Playgroud)
如何编写mycustomvalidation函数来计算参数?
验证器通常有一个数组参数,首先指示要验证的字段,最后指示(如果存在)带有选项的散列.在你的例子中:
:my_custom_validation, parameter1: x, parameter2: y
Run Code Online (Sandbox Code Playgroud)
:my_custom_validation将是一个字段名称,而parameter1:x,parameter2:y将是一个哈希:
{ parameter1: x, parameter2: y}
Run Code Online (Sandbox Code Playgroud)
因此,你会做类似的事情:
def my_custom_validation(*attr)
options = attr.pop if attr.last.is_a? Hash
# do something with options
errors.add_to_base("error message") if condition.exists?
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12891 次 |
| 最近记录: |