在rails 4中进行Time.now验证

时间:2014-05-11 03:38:59

标签: ruby-on-rails ruby

我只是想找一条优雅的线,可以验证我的表中的starts_at字段。它只需要验证表单中的starts_at字段是否大于当前时间,欢呼。

  validates :starts_at, starts_at >= Time.now? 

2 个答案:

答案 0 :(得分:4)

您可以为此构建自定义验证。类似的东西:

class ModelName < ActiveRecord::Base
  validate :time_is_in_future

  def time_is_in_future
    if starts_at < Time.now
      errors.add(:starts_at, "starts_at must be in the future")
    end
  end
end

请参阅:http://guides.rubyonrails.org/active_record_validations.html#custom-validators

答案 1 :(得分:1)

我正在使用&#39; validates_timeliness&#39;有效的时间验证而不是硬代码。

 gem 'validates_timeliness', '~> 3.0'

请参阅此处:https://github.com/adzap/validates_timeliness