弃用警告:不推荐使用`Validator#setup`实例方法,将在Rails 4.2中删除

时间:2014-04-27 15:36:40

标签: ruby ruby-on-rails-4

我不知道这个警告是什么?请提出建议。 以下是我的应用程序代码的一部分。 它使用validates_date行给出了语句错误。

Rails建议我做类似的事情:

class MyValidator < ActiveModel::Validator
  def initialize(options={})
    super
    options[:class].send :attr_accessor, :custom_attribute
  end
end

这是以下的应用代码:

class Patient < ActiveRecord::Base
  searchkick index_name: "patients",text_start: [:first_name,:last_name] 
  after_update :reindex
  has_secure_password
  has_many :addresses
  has_many :vitals
  has_attached_file :avatar, :styles => { :medium => "150x150>", :thumb => "50x50>" },   :default_url => "app/assets/images/missing.png"

  validates_attachment_content_type :avatar, :content_type => /\Aimage\/.*\Z/

  validates :email, email_format: {message: "Invalid email format" }

  validates_uniqueness_of :email

  validates :password_digest, presence: true, confirmation: true, length: {minimum: 8,message:"Must be of atleast 8 characters"}

  validates :first_name, presence: true, format: { with: /\A[a-zA-Z]+\z/, message: "First Name should contain only alphabets"}

  validates :last_name, presence: true, format: { with: /\A[a-zA-Z]+\z/, message: "Last Name should contain only alphabets" }

  validates_date :dob,:before => lambda { Date.current }, presence: true

  validates :password_digest, presence: true, confirmation: true, length: {minimum: 8,message:"Must be of atleast 8 characters"}

  validates :primary_phone_no, presence: true,numericality: {only_integer: true}
end

1 个答案:

答案 0 :(得分:5)

您现在无需担心。我从validates_date看到你正在使用validates_timeliness宝石 - 这是正在抛出弃用警告的宝石。

这是宝石上的一个悬而未决的问题,它正在进行中 - 这是当前的公开问题:https://github.com/adzap/validates_timeliness/pull/114

我建议你等到他们修复它然后更新gem。这只是一个警告,不会阻止任何正常工作。