Rails 3: почему поле с ошибкой не оборачивается div "field_with_errors", когда проверка не проходит? - PullRequest
3 голосов
/ 21 декабря 2010

Мой Product класс имеет поле price, которое имеет соответствующий столбец в таблице Products в базе данных, и вспомогательное поле new_shop (которое определяется как attr_accessor и не имеет соответствующего столбца в Products таблица в базе данных).

При сбое проверки на price поле ввода переносится с field_with_errors div, но при сбое проверки на new_shop оно не переносится с field_with_errors div. Почему?

Вот сгенерированный HTML для этих полей ввода:

<input type="text" name="product[price]" id="product_price">
<input type="text" value="" name="product[new_shop]" id="product_new_shop">

Дополнительная информация:

class Product < ActiveRecord::Base
  attr_accessor :new_shop 
  accepts_nested_attributes_for :shop
  validates_presence_of :price
  ...
end

class Shop < ActiveRecord::Base
  validates_presence_of :name
  ...
end

При отправке формы значение new_shop передается в shop_attributes[:name].

продукта.

1 Ответ

3 голосов
/ 21 декабря 2010

То есть атрибут: name на самом деле не проходит проверку? Вот почему new_shop тогда не получает div fieldWithErrors div: он смотрит на @ product.errors, чтобы определить, по полям или по полям, есть ли ошибки. т.е.

#comes to do the :new_shop field
#looks to see if @product.errors.on(:new_shop) is not blank
#if it isn't blank, wraps the error div round it. 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...