ruby-on-rails - 验证嵌套属性的数量

标签 ruby-on-rails ruby nested-attributes

我有一个带有嵌套属性的模型:

class Foo < ActiveRecord::Base
    has_many :bar
    accepts_nested_attributes_for  :bar
end

它工作正常。但是我想确定对于每个 Foo,我至少有两个 Bar。 我无法在我的验证中访问 bar_attributes,所以我似乎无法验证它。

有什么干净的方法可以这样做吗?

最佳答案

class Foo < ActiveRecord::Base
  has_many :bars
  accepts_nested_attributes_for  :bar

  def validate
    if self.bars.reject(&:marked_for_destruction?).length < 2
      self.errors.add_to_base("Must have at least 2 bars")
    end
  end
end

Controller 将负责构建/更新条形图,因此您只需要查看是否有足够的条形图即可。

关于ruby-on-rails - 验证嵌套属性的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2595969/

相关文章:

ruby-on-rails - 如何获取给定内容类型的默认扩展名?

jquery - Ajax调用/JavaScript中的语法错误未出现在Rails应用程序中

ruby-on-rails - 带有 execjs rails 的 Tomcat

ruby-on-rails - "configuration"是保留名称吗?

ruby - SHA 哈希在签署 OpenSSL 库中的文档时起什么作用?

ruby-on-rails-3 - 带有 mongoid 的 Rails 3 中的嵌套属性问题(不保存嵌套对象)

ruby-on-rails - 将子对象重新关联到另一个父对象-Rails(2.3.11)删除has_many关联对象,而无需执行SQL操作

ruby-on-rails - 为什么 Rubymine 无法识别我的命名空间继承 Controller ?

ruby-on-rails-4 - Rails4 : How to trigger the callback for attr_accessor while using accepts_nested_attributes_for

ruby-on-rails - 嵌套属性 update_attributes 使用插入而不是更新