почему rails не принимает символ: message вне вложенной опции хеширования? - PullRequest
1 голос
/ 01 марта 2011

Вот мой код.Первая закомментированная строка работает нормально;второй нет.Документация здесь отрывочна - нет упоминания опции: message в методе validates, но validates_format_of говорит: сообщение в порядке(http://apidock.com/rails/ActiveModel/Validations/ClassMethods/validates) Что здесь происходит?

class Product < ActiveRecord::Base
  validates :title, :description, :image_url, :presence => true
  #validates :title, :length => {:minimum => 10, :message => "help!"}
  #validates :title, :length => {:minimum => 10}, :message => "help!"
  validates :price, :numericality => {:greater_than_or_equal_to => 0.01}
  validates :image_url, :format => {
    :with => %r{\.(gif|jpg|png)$}i,
    :message => 'must be a URL for GIF, JPG or PNG image.'
  }
end

Ответы [ 2 ]

1 голос
/ 01 марта 2011

В первой закомментированной строке значение сообщения является опцией параметра: length и, по-видимому, оно игнорируется. Для проверки попробуйте

validates :title, :length => {:minimum => 10, :foobar => "help!"}

и вы обнаружите, что он работает без ошибок.

validates - это просто ярлык для валидаторов по умолчанию. Кажется, вы хотите установить опции validates_format_of: message, поэтому я думаю, что вы хотите что-то вроде:

validates :title, length => {:minimum => 10}, :format => { :message => "help!" }
0 голосов
/ 01 марта 2011

Проверки длины запекаются в:

validates_length_of: title,: минимум => 10,: message => "help!"

Активные проверки записей

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