Skip to content

Instantly share code, notes, and snippets.

@ninabreznik
Created January 14, 2015 16:50
Show Gist options
  • Save ninabreznik/628598d08ed0efbfe4bd to your computer and use it in GitHub Desktop.
Save ninabreznik/628598d08ed0efbfe4bd to your computer and use it in GitHub Desktop.
def create
session[:lead_params].deep_merge!(lead_params) if (lead_params)
@lead = Lead.new(session[:lead_params])
@lead.current_step = session[:lead_step]
if params[:back_button]
@lead.previous_step
elsif @lead.last_step?
@lead.save
else
@lead.next_step
end
session[:lead_step] = @lead.current_step
if @lead.save
auto_create_user!(@lead)
session[:lead_step] = session[:lead_params] = nil
redirect_to new_lead_confirmation_url
else
redirect_to leads_new_url
end
end
def auto_create_user!(lead)
if user_signed_in?
lead.user_id = current_user.id
else
user = User.find_by_email(lead.email)
if user
lead.user_id = user.id
else
pass = SecureRandom.hex[0..7]
user = User.create!(
email: lead.email,
password: pass,
password_confirmation: pass
)
lead.user_id = user.id
UserMailer.welcome_email(user, pass).deliver
end
end
lead.save
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment