Проверить немодельное поле - PullRequest
7 голосов
/ 14 января 2010

Я добавил дополнительное поле в мою новую форму:

<%= select_tag :quantity, options_for_select(["Select a Value"].concat((1..10).to_a)) %>

Указывает количество копий создаваемой записи.

Как я могу проверить наличие (или численность) этого поля, поскольку оно не является частью самой модели?

validates_presence_of :quantity не удалось !!!

Ответы [ 2 ]

14 голосов
/ 14 января 2010

Found. Возможно, вы захотите добавить виртуальный атрибут в модель.

.........

attr_accessor :not_on_db
.........

validates_presence_of     :not_on_db,
validates_length_of       :not_on_db,    :within => 1..5
.........
1 голос
/ 14 января 2010

Использовать validates_numericity_of проверки. Проверка чисел по умолчанию проверяет тип с плавающей запятой, вам нужно указать, хотите ли вы видеть целые числа. Поскольку количество не будет храниться в дБ, оно должно быть виртуальным.

Попробуйте это:

attr_accessor :quantity
validates_numericality_of :quantity, :only_integer => true

validates_numericity_of не принимает nil по умолчанию, вам не нужно проверять наличие атрибута, и, поскольку вы, возможно, захотите изменить диапазон количества в представлении, я не проверю его здесь.

Если вы хотите проверить диапазон, объявите его как константу в модели. Обращайтесь к этой константе как в проверке, так и в просмотре.

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