From 8002091d67a65919c612c72fb0222e42a86b34ee Mon Sep 17 00:00:00 2001 From: Maxwell Salzberg Date: Fri, 27 Jan 2012 00:25:45 -0800 Subject: [PATCH] kinda refactor another sucky controller method --- app/controllers/aspects_controller.rb | 30 +++++++++++++++------------ 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/app/controllers/aspects_controller.rb b/app/controllers/aspects_controller.rb index 1873cd635..d858b90c9 100644 --- a/app/controllers/aspects_controller.rb +++ b/app/controllers/aspects_controller.rb @@ -10,22 +10,16 @@ class AspectsController < ApplicationController :json def create - @aspect = current_user.aspects.create(params[:aspect]) + @aspect = current_user.aspects.build(params[:aspect]) + aspecting_person_id = params[:aspect][:person_id] - if @aspect.valid? + if @aspect.save flash[:notice] = I18n.t('aspects.create.success', :name => @aspect.name) - if current_user.getting_started - redirect_to :back - elsif request.env['HTTP_REFERER'].include?("contacts") - redirect_to :back - elsif params[:aspect][:person_id].present? - @person = Person.where(:id => params[:aspect][:person_id]).first - if @contact = current_user.contact_for(@person) - @contact.aspects << @aspect - else - @contact = current_user.share_with(@person, @aspect) - end + if current_user.getting_started || request.referer.include?("contacts") + redirect_to :back + elsif aspecting_person_id.present? + connect_person_to_aspect(aspecting_person_id) else redirect_to contacts_path(:a_id => @aspect.id) end @@ -40,6 +34,16 @@ class AspectsController < ApplicationController end end + #person_id, user, @aspect + def connect_person_to_aspect(aspecting_person_id) + @person = Person.find(aspecting_person_id) + if @contact = current_user.contact_for(@person) + @contact.aspects << @aspect + else + @contact = current_user.share_with(@person, @aspect) + end + end + def new @aspect = Aspect.new @person_id = params[:person_id]