osem-fcy/app/controllers/conference_controller.rb
2014-09-15 19:02:02 +05:30

48 lines
1.5 KiB
Ruby

class ConferenceController < ApplicationController
load_and_authorize_resource find_by: :short_title
def show
@keynote_speakers = @conference.keynote_speakers
end
def subscribe
conference = Conference.find_by_short_title(params[:id])
if current_user.subscriptions.where(conference: conference).blank?
subscription = Subscription.new(user_id: current_user.id, conference_id: conference.id)
begin
subscription.save!
flash[:success] = 'You have been subscribed to receive Email Notifications from this Conference.'
redirect_to root_path
rescue ActiveRecord::RecordInvalid
flash[:error] = subscription.errors.full_messages.to_sentence
redirect_to root_path
end
else
flash[:notice] = 'Already Subscribed'
redirect_to root_path
end
end
def unsubscribe
conference = Conference.find_by_short_title(params[:id])
subscription = current_user.subscriptions.where(conference_id: conference.id).first
if subscription.blank?
flash[:notice] = 'Already Unsubscribed'
redirect_to root_path
else
begin
subscription.destroy!
flash[:notice] = "You have been unsubscribed and now you won't be receiving any Email Notifications."
redirect_to root_path
rescue ActiveRecord::RecordInvalid
flash[:error] = subscription.errors.full_messages.to_sentence
redirect_to root_path
end
end
end
def gallery_photos
@photos = @conference.photos
render 'photos', formats: [:js]
end
end