From a9e97d91165e2d0034ff2c9c513999459ca648e7 Mon Sep 17 00:00:00 2001 From: Vlad Bokov Date: Wed, 9 Apr 2014 18:33:09 +0700 Subject: [PATCH] allow optional inclusion in some controllers + update readme --- README.md | 13 +++++++++++++ lib/action_controller/parameters.rb | 1 - lib/strong_parameters.rb | 9 +++++---- lib/strong_parameters/requires.rb | 5 +++++ 4 files changed, 23 insertions(+), 5 deletions(-) create mode 100644 lib/strong_parameters/requires.rb diff --git a/README.md b/README.md index 1dd6023..ed38696 100644 --- a/README.md +++ b/README.md @@ -85,6 +85,19 @@ By default parameter keys that are not explicitly permitted will be logged in th Additionally, this behaviour can be changed by changing the `config.action_controller.action_on_unpermitted_parameters` property in your environment files. If set to `:log` the unpermitted attributes will be logged, if set to `:raise` an exception will be raised. +## Partial insclusion + +If you won't affect all controllers inherited from `ActionController::Base`, +you can require this gem like this and include it manually + +```ruby +gem 'strong_parameters', require: ['strong_parameters/requires'] + +class SomeController < ActionController::Base + include ActionController::StrongParameters + ... +``` + ## Use Outside of Controllers While Strong Parameters will enforce permitted and required values in your application controllers, keep in mind diff --git a/lib/action_controller/parameters.rb b/lib/action_controller/parameters.rb index 9dc3d7d..9ddd5c5 100644 --- a/lib/action_controller/parameters.rb +++ b/lib/action_controller/parameters.rb @@ -265,4 +265,3 @@ def params=(val) end end -ActiveSupport.on_load(:action_controller) { include ActionController::StrongParameters } diff --git a/lib/strong_parameters.rb b/lib/strong_parameters.rb index c428a40..0c20621 100644 --- a/lib/strong_parameters.rb +++ b/lib/strong_parameters.rb @@ -1,4 +1,5 @@ -require 'action_controller/parameters' -require 'active_model/forbidden_attributes_protection' -require 'strong_parameters/railtie' -require 'strong_parameters/log_subscriber' +require 'strong_parameters/requires' +require 'active_support' + +ActiveSupport.on_load(:action_controller) { include ActionController::StrongParameters } + diff --git a/lib/strong_parameters/requires.rb b/lib/strong_parameters/requires.rb new file mode 100644 index 0000000..1d41695 --- /dev/null +++ b/lib/strong_parameters/requires.rb @@ -0,0 +1,5 @@ +require File.expand_path('../../action_controller/parameters', __FILE__) +require File.expand_path('../../active_model/forbidden_attributes_protection', __FILE__) +require 'strong_parameters/railtie' +require 'strong_parameters/log_subscriber' +