我遇到了一个问题,我不知道如何验证我的数据。
例如
class Parent < ActiveRecord::Base
has_many :children
end
class Child < ActiveRecord::Base
belongs_to :parent
# has the boolean flag visible
# some custom validation to come
end
我有一个表单,允许我使用accepts_nested_attributes同时编辑父项和父项的子项。我想创建只允许一个孩子一次可见的验证。人们会认为这很简单。
然而,情况似乎并非如此。一个例子
说我在数据库中
parent - A
-> child 1, not visible
-> child 2, visible
并在我的表格上
我创建了第3个孩子,并将子2的可见性设置为不可见
parent - A
-> child 1, not visible
-> child 2, not visible
-> child 3, visible
# note the above data is coming from the form (it's not in the db yet)
如果我进行验证并点击数据库,它仍然认为子2是可见的(它在数据库中),但它不在内存中(即通过表格中的params传入)。我尝试在内存数据上运行验证,但我不确定如何实现这一点。
有什么想法吗?
我希望我的解释足够明确。