如何为从表单传递的参数编写验证?

时间:2016-05-07 22:38:54

标签: ruby-on-rails validation

我遇到了一个问题,我不知道如何验证我的数据。

例如

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传入)。我尝试在内存数据上运行验证,但我不确定如何实现这一点。

有什么想法吗?

我希望我的解释足够明确。

0 个答案:

没有答案