странное исключение в валидации Rails - PullRequest
1 голос
/ 25 ноября 2011

Журнал ясно показывает, что пользователь отправил файл Commit_end.

Что мне не хватает?Должен ли я проверять, имеет ли обязательств значение = 0, прежде чем сравнивать его размер?

Метод:

  def commitment_is_in_the_future
    if commitment_end < Time.now.to_date
      errors.add(:commitment_end, I18n.t('validate_future_date'))
    end
  end

Журнал

В сделках произошла ошибка NoMethodError # create:

неопределенный метод <' for nil:NilClass app/models/deal.rb:19:in commit_is_in_the_future '

------------------------------- Запрос:

  • URL: http://domain.com/deals * IP-адрес: 146.10.1.1 * Параметры: {"utf8" => "✓", "authenticity_token" => "k7J6KAp + 69E + zdsfs + MVRwtax39Q6m6FfNRkZRQ ="," deal "=> {" company_id "=>" 7 "," service_id "=>" 2 "," Commit_end"=>" 31-11-2011", "price" => "150"}, "commit" => "done", "action" => "create", "controller" => "deals"} * Корень Rails: / app

1 Ответ

1 голос
/ 25 ноября 2011

Если вы используете attr_protected или attr_accessible в своей модели, то значение "Commit_end" в параметрах может быть не установлено в модели как @commitment_end.Это может привести к тому, что ваш вызов метода commitment_end в операторе if вернет nil.

Другая причина может заключаться в том, что «commit_end» не является атрибутом модели, и вам нужно attr_accessor вдля модели @commitment_end установлено.

Не могли бы вы опубликовать больше вашей модели / схемы, связанной с 'Commit_end'?Может выясниться, где значение установлено / не устанавливается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...