【问题标题】:Rails 4 using validations on DateTime to get shoulda test passingRails 4 在 DateTime 上使用验证来让测试通过
【发布时间】:2014-04-15 22:03:52
【问题描述】:

以下测试:

  it { should have_valid(:date_time).when ("2014/April/15") }
  it { should_not have_valid(:date_time).when ("2014/April/15000") }
  it { should_not have_valid(:date_time).when ("2014/ZZZ/14") }
  it { should_not have_valid(:date_time).when(nil, '') }

以下两个没有通过:

  it { should_not have_valid(:date_time).when ("2014/April/15000") }
  it { should_not have_valid(:date_time).when ("2014/ZZZ/14") }

我都收到了错误消息argument out of range。在我的模型中,我有以下内容:

class Textmessage < ActiveRecord::Base

  validates :date_time, presence: true
end

我需要在验证中添加什么才能使其通过?

【问题讨论】:

  • 不清楚。您是否要针对一系列日期进行验证?

标签: ruby-on-rails validation datetime rspec shoulda


【解决方案1】:

这是 shoulda 的预期行为。当为 DateTime 列提供这些字符串中的任何一个时,Rails 将引发异常,而不是在模型上设置错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-24
    相关资源
    最近更新 更多