diff options
author | David Yip <yipdw@member.fsf.org> | 2018-01-09 20:09:00 -0600 |
---|---|---|
committer | David Yip <yipdw@member.fsf.org> | 2018-01-10 12:09:42 -0600 |
commit | 6fcb870d96e53a5d032c0639697b1387248339d6 (patch) | |
tree | 6730ebaeef52c844cc6d65f1b1d8caaac418569b | |
parent | 3ce1385b254c75ad026a84cb19d2ed49c10aa665 (diff) |
Allow for user object to be empty. Fixes #317.
If a flavour has only one skin, the skin selector will be omitted. This omits the user[setting_skin] field, and because that's the only user[...] field on the page, the entire user object will not be present in the request handler's params object. This commit accounts for that scenario by avoiding params.require(:user) and instead picking out what we need from the params hash.
-rw-r--r-- | app/controllers/settings/flavours_controller.rb | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/app/controllers/settings/flavours_controller.rb b/app/controllers/settings/flavours_controller.rb index 865d5a479..a4bdcdf3e 100644 --- a/app/controllers/settings/flavours_controller.rb +++ b/app/controllers/settings/flavours_controller.rb @@ -16,7 +16,7 @@ class Settings::FlavoursController < Settings::BaseController end def update - user_settings.update(user_settings_params(params[:flavour]).to_h) + user_settings.update(user_settings_params(params[:flavour])) redirect_to action: 'show', flavour: params[:flavour] end @@ -27,9 +27,8 @@ class Settings::FlavoursController < Settings::BaseController end def user_settings_params(flavour) - params.require(:user).merge({ setting_flavour: flavour }).permit( - :setting_flavour, - :setting_skin - ) + { setting_flavour: params.require(:flavour), + setting_skin: params.dig(:user, :setting_skin) + }.with_indifferent_access end end |