ruby-on-rails – 我应该在Rails 5中放置自定义验证器?

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 我应该在Rails 5中放置自定义验证器?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试为我的应用添加电子邮件自定义验证器;但是,我应该在哪里放置自定义验证器? (我真的不想将这个验证器类放在模型中)是否有用于验证器的cli生成器?

http://guides.rubyonrails.org/active_record_validations.html

class EmailValidator < ActiveModel::EachValidator
  def validate_each(record,attribute,value)
    unless value =~ /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i
      record.errors[attribute] << (options[:message] || "is not an email")
    end
  end
end

class Person < ApplicationRecord
  validates :email,presence: true,email: true
end

什么是自定义验证器的约定位置/路径?

解决方法

我将它们放在/app/validators/email_validator.rb中,验证器将自动加载.

另外,我不知道你的情况是否属实,但你应该在表格中替换它.如果是这样,则在用户到达控制器之前进行第一次验证.

<div class="field">
    <%= f.label :email %>
    <%= f.text_field :email,required: true %>
  </div>

通过:

<div class="field">
    <%= f.label :email %>
    <%= f.email_field :email,required: true %>
  </div>
原文链接:https://www.f2er.com/ruby/269401.html

猜你在找的Ruby相关文章