Rails 3:当验证失败时,为什么带有错误的字段没有包含“field_with_errors”div?

时间:2010-12-21 01:14:26

标签: ruby-on-rails validation ruby-on-rails-3 field-with-errors

我的Product类有price字段,在数据库的Products表中有一个适当的列,new_shop辅助字段(定义为{{1}在数据库的attr_accessor表中没有相应的列。

Products上的验证失败时,输入字段将包含price div,但是当field_with_errors上的验证失败时,它不会被new_shop div包裹。为什么?

以下是为这些输入字段生成的HTML:

field_with_errors

更多信息:

<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

1 个答案:

答案 0 :(得分:3)

所以它是:name属性实际上未通过验证?这就是为什么new_shop没有获得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.