Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails:Error";NoMethodError:未定义的方法`<';对于nil:NilClass";,丢失一些宝石?_Ruby On Rails_Model_Gem_Ruby On Rails Plugins_Nomethoderror - Fatal编程技术网

Ruby on rails Rails:Error";NoMethodError:未定义的方法`<';对于nil:NilClass";,丢失一些宝石?

Ruby on rails Rails:Error";NoMethodError:未定义的方法`<';对于nil:NilClass";,丢失一些宝石?,ruby-on-rails,model,gem,ruby-on-rails-plugins,nomethoderror,Ruby On Rails,Model,Gem,Ruby On Rails Plugins,Nomethoderror,这是模型课 类项::项项。有效吗? NoMethodError:undefined method`请注意,您在控制台中创建的项对象的开始日期,结束日期等值为零 然后,比较nil

这是模型课 类项::项
         def validate_start_and_end_date
             errors.add(:start_date, "should not be in past") if start_date < Date.today
             errors.add(:end_date, "should not be in past") if end_date < Date.today
             errors.add(:base, "start date should not be after end date") if end_date <  start_date
         end

         belongs_to :product, {:class_name => 'Item::Product'}

   end 
def验证开始日期和结束日期
错误。如果开始日期'Item::product'}
结束
下面是rails控制台的日志

    ruby-1.8.7-p334 :020 > item = Item::Item.new 
    => #<Item::Item id: nil, start_date: nil, end_date: nil, product_id: nil> 
    ruby-1.8.7-p334 :021 > item.valid?
    NoMethodError: undefined method `<' for nil:NilClass
    from /home/maddy/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.3/lib/active_support/whiny_nil.rb:48:in `method_missing'
    from /media/Development/codie/orgstud-security/app/models/lecture/lecture.rb:13:in `validate_start_and_end_date'
    from /home/maddy/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.3/lib/active_support/callbacks.rb:419:in `_run_validate_callbacks'
    from /home/maddy/.rvm/gems/ruby-1.8.7-p334/gems/activemodel-3.0.3/lib/active_model/validations.rb:212:in `run_validations!'
    from /home/maddy/.rvm/gems/ruby-1.8.7-p334/gems/activemodel-3.0.3/lib/active_model/validations/callbacks.rb:67:in `run_validations!'
    from /home/sgarg/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.3/lib/active_support/callbacks.rb:413:in `_run_validation_callbacks'
    from /home/maddy/.rvm/gems/ruby-1.8.7-p334/gems/activemodel-3.0.3/lib/active_model/validations/callbacks.rb:67:in `run_validations!'
    from /home/maddy/.rvm/gems/ruby-1.8.7-p334/gems/activemodel-3.0.3/lib/active_model/validations.rb:179:in `valid?'
    from /home/maddy/.rvm/gems/ruby-1.8.7-p334/gems/activerecord-3.0.3/lib/active_record/validations.rb:55:in `valid?'
from (irb):21
ruby-1.8.7-p334:020>item=item::item.new
=> # 
ruby-1.8.7-p334:021>项。有效吗?

NoMethodError:undefined method`请注意,您在控制台中创建的
对象的
开始日期
结束日期
等值为


然后,比较
nil导致了异常。

请注意,您在控制台中创建的
对象的
开始日期
结束日期
等均为
nil


然后,对验证方法中的
nil进行比较会导致异常。

这是一种抱怨,因为在进行自定义验证时,尚未设置开始日期和结束日期属性。当它试图比较开始日期和今天的日期时,它试图比较一个nil值

您可以将验证包装在条件块中:

if !start_date.nil? && !end_date.nil?
  ...
end

这是因为在进行自定义验证时,尚未设置开始日期和结束日期属性。当它试图比较开始日期和今天的日期时,它试图比较一个nil值

您可以将验证包装在条件块中:

if !start_date.nil? && !end_date.nil?
  ...
end

我刚刚看到第一个代码块描述了
touch::touch
模型。你能把
Item::Item
模型贴出来吗?(这可能是同一个问题,但我不能确定。)我刚刚看到第一个代码块描述了
touch::touch
模型。你能把
Item::Item
模型贴出来吗?(可能是同样的问题,但我不能确定。)
除非start_date.nil?&&结束日期.nil?
,除非开始日期.nil?&结束日期。无?