internetee-registry/app/controllers/admin/settings_controller.rb
2017-08-23 01:24:01 +03:00

39 lines
932 B
Ruby

module Admin
class SettingsController < BaseController
load_and_authorize_resource
def index
@settings = Setting.unscoped
end
def create
@errors = Setting.params_errors(casted_settings)
if @errors.empty?
casted_settings.each do |k, v|
Setting[k] = v
end
flash[:notice] = t('.saved')
redirect_to [:admin, :settings]
else
flash[:alert] = @errors.values.uniq.join(", ")
render "admin/settings/index"
end
end
private
def casted_settings
settings = {}
params[:settings].each do |k, v|
settings[k] = v
settings[k] = v.to_i if Setting.integer_settings.include?(k.to_sym)
settings[k] = v.to_f if Setting.float_settings.include?(k.to_sym)
settings[k] = (v == 'true' ? true : false) if Setting.boolean_settings.include?(k.to_sym)
end
settings
end
end
end