2013-08-04 2 views
0

Я хочу проверить поле примечания только в том случае, если поле user_id пуст?рельсы 3 рубина 2 условные проверки не работают как ожидалось

Я попытался без лямбда:

validates_presence_of :note, :unless => user_id? 

Я попытался с помощью метода:

validates_presence_of :note, :unless => user_is_present? 
    def user_is_present? 
     self.user_id.present? 
    end 

Я попробовал лямбда:

validates_presence_of :note, :unless => lambda { self.user_id.present? } 

Я попробовал Proc

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" 

Trial подтверждает & ошибки является нулевым значением является user_id ... который не подтвержден и не терпит неудачи.

  1. Первый вопрос: есть ли какие-либо ошибки в моих попытках?
  2. второй вопрос: как я могу это сделать?

ответ

0

Я хотел бы попробовать

validates :note, presence: true, unless: 'user_id' 

Вам не нужно никаких методов ...

Смежные вопросы