gil*_*las 10 ruby-on-rails ruby-on-rails-3
我将EmailValidator放在lib/validators/email_validator中并且它不起作用(我将root/lib放在load_path中)
这是代码..我把模块验证器中的类作为父文件夹名称
class Validators::EmailValidator < ActiveModel::EachValidator
def validate_each(object, attribute, value)
unless value =~ /^([^@\s]+)@([a-z0-9]+\.)+[a-z]{2,}$/i
object.errors[attribute] << (options[:message] || "is not formatted properly")
end
end
end
Run Code Online (Sandbox Code Playgroud)
我收到错误未知验证器:'email'
Dou*_*rer 14
您有两种选择:
config/initializers.或者添加lib/validators到自动加载路径中config/application.rb.
config.autoload_paths << "#{config.root}/lib/validators"
就个人而言,我会选择第二个选项作为lib/validators良好的封装.
lul*_*ala 10
由于您将自定义验证器放在其中Validators::,因此lib/validators您还必须使用该命名空间引用它.
validates :email, presence: true, :'validators/email' => true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3942 次 |
| 最近记录: |