我有一个带有嵌套属性的模型:
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/