Ruby on rails Rails验证中的奇怪异常

Ruby on rails Rails验证中的奇怪异常,ruby-on-rails,validation,exception,Ruby On Rails,Validation,Exception,日志clrearly显示用户已发布承诺结束 我错过了什么? 在比较它的大小之前,我是否应该检查它是否为零 方法: def commitment_is_in_the_future if commitment_end < Time.now.to_date errors.add(:commitment_end, I18n.t('validate_future_date')) end end def承诺是未来的承诺 如果承诺结束

日志clrearly显示用户已发布承诺结束

我错过了什么? 在比较它的大小之前,我是否应该检查它是否为零

方法:

  def commitment_is_in_the_future
    if commitment_end < Time.now.to_date
      errors.add(:commitment_end, I18n.t('validate_future_date'))
    end
  end
def承诺是未来的承诺
如果承诺结束
日志

交易中出现命名错误#创建:

未定义的方法
“✓",
“真实性令牌”=>“k7J6KAp+69E+zdsfs+MVRwtax39Q6m6FfNRkZRQ=”,
“交易”=>{“公司id”=>“7”,“服务id”=>“2”,
“承诺\u结束”“=>”2011年11月31日“,“价格”=>“150”},“承诺”=>“完成”,
“操作”=>“创建”、“控制器”=>“交易”}*Rails根:/app


如果在模型中使用
attr\u protected
attr\u accessible
,则参数中的“commission\u end”值可能不会在模型中设置为
@commission\u end
。这将导致If语句中的
commission\u end
方法调用返回
nil

另一个原因可能是“commission\u end”不是模型的属性,您需要在模型中设置
@commission\u end
属性访问器


您可以发布更多与“承诺”相关的模型/模式吗?它可能会清除设置/未设置值的位置。

如果您在模型中使用
attr\u protected
attr\u accessible
,则“承诺”结束“参数中的值可能不会在模型中设置为
@commitment\u end
。这将导致if语句中的
commitment\u end
方法调用返回
nil

另一个原因可能是“commission\u end”不是模型的属性,您需要在模型中设置
@commission\u end
属性访问器


请您发布更多与“承诺”相关的模型/模式,好吗?它可能会清除设置值的位置。

create_table“deals”;:force=>true do | t | t.integer“user|id”t.integer“company|id”t.integer“commission|monts”t.date“commission|end”t.integer“price”t.timestamp“created|at”t.timestamp“updated||at”t.integer“服务id”endattr\u可访问:用户id、:公司id、:服务id、:承诺月份、:服务、:承诺开始、:承诺结束、:价格在比较承诺结束的大小之前,我是否应该检查承诺结束是否为零?谢谢检查它是否为nil将有助于避免错误,但它不能解释在将数据传递到模型中时为什么为nil。您正在运行哪个版本的Rails?我刚刚设置了一个虚拟Rails 3.1.0应用程序,其中包含一个带有日期属性“commission\u end”的交易模型,attr\u可用于:commission\u end,在确认之前:commission\u是未来的,我没有遇到任何问题……3.0.9它不会一直发生。我想我在客户端遇到了问题。jquery日期选择器在某些浏览器上不能正常工作。“2011年11月31日”是无效日期。感谢您的帮助create|table“deals”:force=>true do|t|t.integer“user|id”t.integer“company|id”t.integer“commission”t.monts“t.date”commission|t.date“commission|end”t.integer“price”t.timestamp“created||”t.timestamp“t.timestamp”更新|t.integer“service|id”endattr\u可访问:用户id、:公司id、:服务id、:承诺月份、:服务、:承诺开始、:承诺结束、:价格在比较承诺结束的大小之前,我是否应该检查承诺结束是否为零?谢谢检查它是否为nil将有助于避免错误,但它不能解释在将数据传递到模型中时为什么为nil。您正在运行哪个版本的Rails?我刚刚设置了一个虚拟Rails 3.1.0应用程序,其中包含一个带有日期属性“commission\u end”的交易模型,attr\u可用于:commission\u end,在确认之前:commission\u是未来的,我没有遇到任何问题……3.0.9它不会一直发生。我想我在客户端遇到了问题。jquery日期选择器在某些浏览器上不能正常工作。“2011年11月31日”是无效日期。谢谢你的帮助我正在调查这个宝石:我正在调查这个宝石: