Je souhaite que mon serveur mette à jour un paramètre de modèle (layout_is_public) lorsqu'une action de mise à jour de contrôleur est appelée. Le paramètre ne doit pas être mis à jour directement par les utilisateurs.Comment ajouter des paramètres forts personnalisés dans les rails 5
Mon contrôleur fort params:
def allowed_params
params.require(:payload).permit(:name, :layout_id)
end
Mon before_action dans le même contrôleur:
def correct_layout
if allowed_params[:layout_id].present?
puts allowed_params.merge(layout_is_public: false).inspect
# puts output is as expected:
# => <ActionController::Parameters {"layout_id"=>1, "layout_is_public"=>false} permitted: true>
allowed_params = allowed_params.merge(layout_is_public: false)
end
end
Je ne sais pas comment mettre à jour mes allowed_params pour inclure le paramètre nouvellement généré bien.
Je ne suis pas sûr non plus si cette action devrait vraiment être effectuée dans le contrôleur ou le modèle lui-même. Toute aide serait grandement appréciée :)
Note: La variable layout_is_public est simplement mise à false ici pour plus de clarté.