hel*_*ion 5 validation nested-attributes simple-form ruby-on-rails-4
我使用 simple_form。使用 rails accepts_nested_attributes_for 时,表单验证失败,抱怨嵌套属性验证失败,因为父对象的 id 不能为空 (validates_presence_of)。
我知道正在提交父对象 id,因为如果我删除表单提交的验证,并且子记录是有效的。因此,在父 ID 与子 ID 关联之前,验证正在查看参数……因此失败。这看起来很奇怪。为什么 rails 在嵌套属性的父级正确关联之前的表单提交阶段运行验证?
有没有处理这种情况的方法?
刚刚在 Rails 文档中找到了答案。这是他们的示例,使用inverse_of:
class Member < ActiveRecord::Base
has_many :posts, inverse_of: :member
accepts_nested_attributes_for :posts
end
class Post < ActiveRecord::Base
belongs_to :member, inverse_of: :posts
validates_presence_of :member
end
Run Code Online (Sandbox Code Playgroud)