Ich habe Probleme beim Hinzufügen von Kindern zu einem bestimmten Elternteil. Die Ansicht hat einen Link "Kind hinzufügen", der das aktuelle Person-Objekt übergibt. Von hier aus, ich bin stecken. Sowohl das Elternteil als auch das Kind sind Person-Objekte.
Auch die Logik ist schlecht - sie geht derzeit von Vater aus.
Modell (person.rb):
class Person < ActiveRecord::Base
has_many :children, :class_name => "Person"
belongs_to :father, :class_name => "Person", :foreign_key => 'father_id'
belongs_to :mother, :class_name => "Person", :foreign_key => 'mother_id'
def children
Person.find(:all, :conditions => ['father_id=? or mother_id=?', id, id])
end
end
Controller (people_controller.rb):
class PeopleController < ApplicationController
# GET /people/new
# GET /people/new.xml
def new
if (params[:parent_id])
parent = Person.find(params[:parent_id])
@person = Person.new(:lastname => parent.lastname, :telephone => parent.telephone, :email => parent.email)
@person.father.build(:father_id => parent.id)
else
# create new
@person = Person.new
end
respond_to do |format|
format.html # new.html.erb
end
end
# POST /people
# POST /people.xml
def create
@person = Person.new(params[:person])
respond_to do |format|
if @person.save
format.html { redirect_to(@person, :notice => 'Person was successfully created.') }
else
format.html { render :action => "new" }
end
end
end
end
Siehe (people/_form.html.erb):
<%= link_to "Add Child", {:controller => '/people', :action => :new, :parent_id => @person.id} %>