5 Stimmen

Schienen: Kind/Eltern-Beziehung erstellen

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} %>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X