Pastie now auto-senses if line-wrap is a bad or good idea. Feedback?
## mark a section (Learn more)
## tour.rb class Tour < ActiveRecord::Base has_many :customers, :through => :tour_customers has_many :tour_customers accepts_nested_attributes_for :customers, :allow_destroy => false def update_customers(customers_attributes) new_customers = [] customers_attributes.each_pair do |key, value| new_customers << Customer.find_or_create_by_name(value['name']) unless (!value['_delete'].blank? || !value['_destroy'].blank?) end self.customers = new_customers save end end ## tours_controller.rb # POST /tours # POST /tours.xml def create customers = params[:tour][:customers_attributes] params[:tour][:customers_attributes] = {} @tour = Tour.new(params[:tour]) respond_to do |format| if @tour.save && @tour.update_customers(customers) flash[:notice] = 'Tour was successfully created.' format.html { redirect_to(@tour) } format.xml { render :xml => @tour, :status => :created, :location => @tour } else format.html { render :action => "new" } format.xml { render :xml => @tour.errors, :status => :unprocessable_entity } end end end # PUT /tours/1 # PUT /tours/1.xml def update customers = params[:tour][:customers_attributes] params[:tour][:customers_attributes] = {} @tour = Tour.find(params[:id]) respond_to do |format| if @tour.update_attributes(params[:tour]) && @tour.update_customers(customers) flash[:notice] = 'Tour was successfully updated.' format.html { redirect_to(@tour) } format.xml { head :ok } else format.html { render :action => "edit" } format.xml { render :xml => @tour.errors, :status => :unprocessable_entity } end end end
This paste will be private.
From the Design Piracy series on my blog: