class ApplicationController < ActionController::Base include CurrentConferenceAssigning # Prevent CSRF attacks by raising an exception. # For APIs, you may want to use :null_session instead. protect_from_forgery with: :exception before_filter :configure_permitted_parameters, if: :devise_controller? before_action :set_locale before_action :set_view_paths # TODO: make this get the domain from the database #layout Proc.new { |controller| controller.request.host } layout 'public/application' def self.default_url_options(options={}) if I18n.locale != I18n.default_locale options.merge({locale: I18n.locale}) else options end end private def set_locale I18n.locale = params[:locale] || I18n.default_locale if user_signed_in? and current_user.language != I18n.locale current_user.update(language: I18n.locale) end end def set_view_paths # TODO: make this get the domain from the database prepend_view_path 'lib/initfest/views' if request.host =~ /openfest/ prepend_view_path 'lib/initfest/views' if request.host =~ /example/ prepend_view_path 'lib/initfest/views' if request.host =~ /127\.0\.0/ end protected def configure_permitted_parameters devise_parameter_sanitizer.permit(:account_update, keys: [:language]) end end