【问题标题】:Nested attribute validations not being called未调用嵌套属性验证
【发布时间】:2012-05-09 21:27:21
【问题描述】:

我已经为此苦苦挣扎了一段时间。我只是想获得嵌套属性以在 Rails 3.2 上进行验证,但没有运气。就好像它完全忽略了对嵌套属性的验证。下面是一个无效的验证示例:

class Invoice < ActiveRecord::Base
  validates :description, :presence => true
  belongs_to  :client_branch
  has_many    :invoice_items

  accepts_nested_attributes_for :invoice_items, :allow_destroy => true
end

class InvoiceItem < ActiveRecord::Base
  belongs_to  :invoice
  validate :thisisatest

  def thisisatest
    errors.add(:qty, 'QTY NOT VALIDATING TEST.')
  end
end

当保存带有一些 InvoiceItems 的 Invoice 时,它​​会成功保存它,即使自定义验证显然会为 :qty 属性添加错误。有什么我应该添加到我的模型中以使嵌套验证工作的东西,还是我可能遗漏了其他东西?

【问题讨论】:

  • 发票保存时,发票项是否也保存了?你使用 attr_accessible 吗?您是否将 :invoice_item_attributes 列为 attr_accessible?

标签: ruby-on-rails validation activerecord ruby-on-rails-3.2


【解决方案1】:

实际上,我很愚蠢。我更改了模型名称以及对它的所有引用,我花了这么长时间才错过仍然指向 javascript 中旧模型的引用。因此,动态添加的项目未正确命名,导致验证未触发。 :/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多