У меня есть пользовательская модель, у которой есть родители.Я хочу, чтобы эта пользовательская модель имела одного отца и одну мать.
Итак, мой класс Parent принадлежит пользователю
В настоящее время у меня есть
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')
...
Когда я перехожу к редактированию, он создает и выбрасывает двух родителей в базу данных, даже не изменив ничего в форме.Например, когда я нажимаю кнопку «Изменить» для пользователя, я перехожу на страницу редактирования.Когда я просматриваю базу данных, они уже созданы.
Моя форма выглядит следующим образом:
= 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')
...
Но форма не отображается.
Любая помощь будет принята с благодарностью.