我正在尝试创建一个父对象以及与其关联的一组嵌套子对象,但是我不确定如何在任一对象之前在子对象的验证方法中访问父对象(其他子对象)坚持下来了。简而言之,这是我的场景:
class Parent < ActiveRecord::Base
has_many :children
end
class Child < ActiveRecord::Base
belongs_to :parent
validate :siblings_validation
def siblings_validation
siblings = parent.children #parent is Nil here on create (but not on update)
# compare stuff...
end
end
关联是使用标准的嵌套表单集创建的,如下所示:
- form_for @parent do |f|
= f.text_field :name
- f.fields_for :children do |c|
= render :partial => "child_fields", :locals => {:f => c}
有没有办法从子对象的 siblings_validation 方法访问父对象?
感谢您的回复。
最佳答案
在保存父模型之前,您无法访问它。当我必须验证嵌套模型时,我遇到了同样的问题。但是您可以从父级访问子模型。所以尝试通过父模型进行验证。或者,您可以创建一些 attr_accessible
并在子模型中使用它来进行验证。
关于ruby-on-rails - Ruby on Rails : Accessing nesting (parent) object on create,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7884601/