Rails 你们遇到过 validates_associated 会给出重复的 errors 信息的吗?

hegwin · 2013年07月31日 · 最后由 zlx_star 回复于 2013年07月31日 · 3198 次阅读

大概故事是这样……

class Company < AR::Base
  has_many :brands
  validates_associated :brands
end

class Brand < AR::Base
  belongs_to :company
  validates_presence_of :name
end

然后前台更新 Company 的时候,如果添加一个 brand 但是不填名字,会给出两条出错的信息。

  • Brands is invalid
  • Brands is invalid

BTW,如果添加两个 brand 且不填名字。会给出 3 条……

我进 rails console 之后去试验,也会有同样的问题

c = Company.find(1)
c.valid?
  => true
c.brands.new
  => #<Brand id: nil, custom: nil, name: nil, company_id: 1, created_at: nil, updated_at: nil>
c.valid?
  => false
c.errors.full_message
  => ["Brands is invalid", "Brands is invalid"]
c.brands.last.errors.full_message
  => ["Name required"]

借问一下,添加 validates_associated 有什么好处?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号