Refaktoryzacja dynamicznych parametrów params w kontrolerze

Witam, kod wygląda tak, mam coś podobnego w kilku kontrolerach, jak widać chodzi o dodanie dynamicznie dwóch atrybutów w params.
Czy można to jakoś fajnie zrefaktoryzować żeby wstrzykiwać to w każdym z kontrolerów za pomocą np concerns ?

def project_params if action_name == 'create' || current_user.can_change_acl?(@project) params.require(:project).permit(:name, :description, :status, :tag_list, :access, {custom_user_ids: []}) else params.require(:project).permit(:name, :description, :status, :tag_list) end end

[code]#app/controllers/foos_controller.rb
class FoosController
include Bar
end

#lib/bar.rb
module Bar
def project_params
if action_name == ‘create’ || current_user.can_change_acl?(@project)
params.require(:project).permit(:name, :description, :status, :tag_list, :access, {custom_user_ids: []})
else
params.require(:project).permit(:name, :description, :status, :tag_list)
end
end
end[/code]
?

akurat każdy kontroller ma inne parametry, tylko :access jest w każdym, wiec musiało by to być coś bardziej uniwersalnego.

A może coś a’la

[code]#app/controllers/application_controller.rb
def allowed_params
allowed = ALLOWED_PARAMS
allowed += ADDITIONAL_PARAMS if action_name == ‘create’ || current_user.can_change_acl?(@more_universal_name_or_method)
params.require(MODEL_NAME).permit( *allowed)
end

a w kontrolerach

ALLOWED_PARAMS = [:name, :description, :status, :tag_list]
ADDITIONAL_PARAMS = [ :access, {custom_user_ids: []}]
MODEL_NAME = :user[/code]
ew. zamiast MODEL_NAME zrobić metodę do wyciągania symbolu z nazwy kontrolera, lub zmienić stałe na metody + w application_controller raise NotImplemented jeżeli nie zostały zdefiniowane w kontrolerze