我有一个拥有很多父母的用户模型。 我希望那个用户模型有一个父亲和一个母亲。
所以我的班级Parent_to user
目前我有
class User < ActiveRecord::Base
has_many :parents
has_one :father, :class_name => 'Parent', :foreign_key => 'user_id', :conditions => {:type => 'male'}
has_one :mother, :class_name => 'Parent', :foreign_key => 'user_id', :conditions => {:type => 'female'}
end
class Parent < ActiveRecord::Base
belongs_to :user
end
问题出在我的控制器上。
...
def edit
@user = User.find(params[:id])
@user.mother = Parent.new(:type => 'female')
@user.father = Parent.new(:type => 'male')
...
当我进入编辑时,它会创建并将2个父项引入数据库,甚至不会更改表单中的任何内容。例如,当我单击用户的编辑时,我会转到编辑页面。当我查看数据库时,它们已经被创建了。
我的表格如下:
= form_for @user do |f|
= f.fields_for :father do |father_form|
etc...
= f.fields_for :mother do |mother_form|
etc...
我已经尝试在我的控制器中单独执行此操作:
...
@user.parents.build(:type => 'male')
@user.parents.build(:type => 'female')
...
但表格没有出现。
非常感谢任何帮助。
答案 0 :(得分:3)
尝试使用
@user.build_father(:type => 'male')
@user.build_mother(:type => 'female')
而不是
@user.mother = Parent.new(:type => 'female')
@user.father = Parent.new(:type => 'male')
在你的行动中