accepted_nested_attributes_for with foreign_key选项

时间:2014-05-23 10:46:56

标签: ruby-on-rails associations

我有3个模型通过RoR上的ActiveRecord关联相互关联。
我试图在ParentsController #create action中创建子实例 但是我得到一个错误,即如果没有父级,子实例就无法保存。

模型

Class Parent < ActiveRecord::Base
  has_many :children, :through => :middles #, :class_name => 'Parent'
  has_many :p_has_childs, :foreign_key => 'p_id'
  accepts_nested_attributes_for :p_has_childs
end

Class PHasChild < ActiveRecord::Base
  belongs_to :parent, :foreign_key => 'p_id'
  validates_presence_of :parent, :child
end

Class Child < ActiveRecord::Base
  has_many :p_has_childs
  has_many :parents, :through => :middles, :class_name => 'Parent'
end

查看

@parent.form_for do |f|
  @parent.p_has_childs.each do |p_has_child|
    f.fields_for :p_has_childs, p_has_child do |p_f|
      p_f.select :child_id
    end
  end
  f.submit
end

我尝试了accepts_nested_attributes_for方法,如果Class PHasChild有parent_id和child_id(并使用ParentHasChild类),那么效果很好但是我需要使用p_id而不是parent_of。 如何使用belongs_to关联的foreign_key选项?

0 个答案:

没有答案