module RailsConditionalParams::AliasPatch

Public Class Methods

included(other) click to toggle source
# File lib/rails_conditional_params/alias_patch.rb, line 18
def AliasPatch.included(other)
  other.alias_method_chain :permit, :conditional_params
end

Public Instance Methods

permit_with_conditional_params(*filters) click to toggle source

Adds support for conditional params:

params.permit(yes: true, no: false)
# => { "yes" => "..." }

This is useful for parameters that should be permitted in some cases, but not others:

params.permit(:title, :body, published: admin?)
# Result only includes published if admin? is true.
# File lib/rails_conditional_params/alias_patch.rb, line 13
def permit_with_conditional_params(*filters)
  RailsConditionalParams.restructure_filters! filters
  permit_without_conditional_params(*filters)
end