|
require 'valid_email'
class SubscriptionController < ApplicationController
def create
@subscription = Subscription.new(subscription_params)
@subscription.language = cookies[:avalanche_locale]
@subscription.check_if_registered_user
@subscribe_status = 'error'
respond_to do |format|
if Subscription.find_by_email(@subscription.email) == nil && @subscription.valid?
if @subscription.save
@subscribe_status = 'success'
format.html { redirect_to root_path, notice: 'Thanks for subscribing to our newsletter' }
format.json { render action: 'show', status: :created }
else
@subscribe_status = 'error'
format.html { redirect_to root_path, alert: 'An error ocured. Please try gain.' }
format.json { render action: 'show', status: :created, location: @subscription }
end
else
@subscribe_status = 'invalid'
format.html { redirect_to root_path, alert: 'You have already registered to our newsletter' }
format.json { render action: 'show', status: :created, location: @subscription }
end
end
end
# Never trust parameters from the scary internet, only allow the white list through.
def subscription_params
params.require(:subscription).permit(:first_name, :last_name, :email)
end
end
|