Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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 3 rails 3 ruby 2条件验证未按预期工作_Ruby On Rails 3_Validation_Conditional_Ruby 2.0 - Fatal编程技术网

Ruby on rails 3 rails 3 ruby 2条件验证未按预期工作

Ruby on rails 3 rails 3 ruby 2条件验证未按预期工作,ruby-on-rails-3,validation,conditional,ruby-2.0,Ruby On Rails 3,Validation,Conditional,Ruby 2.0,我只想在用户id字段为空时验证备注字段 我试过不用兰姆达: validates_presence_of :note, :unless => user_id? validates_presence_of :note, :unless => lambda { self.user_id.present? } 我尝试了一种方法: validates_presence_of :note, :unless => user_is_present? def user_

我只想在用户id字段为空时验证备注字段

我试过不用兰姆达:

   validates_presence_of :note, :unless => user_id?
  validates_presence_of :note, :unless => lambda { self.user_id.present? }
我尝试了一种方法:

   validates_presence_of :note, :unless => user_is_present?
   def user_is_present?
      self.user_id.present?
   end
我试了一个兰姆达:

   validates_presence_of :note, :unless => user_id?
  validates_presence_of :note, :unless => lambda { self.user_id.present? }
我试过一个程序

  validates_presence_of :note, :unless => Proc.new { |x| x.user_id.present? }
所有结果如下:

  "Called id for nil, which would mistakenly be 8 -- if you really wanted the id of nil, use object_id"
试用和错误确认为nil值为用户id…未经验证且不应失败

  • 第一个问题是我的尝试有没有错误
  • 第二个问题是我如何做到这一点
  • 我会试试看

    validates :note, presence: true, unless: 'user_id'
    
    您不需要定义任何方法