Je construis une application Web avec des paramètres puissants Rails 4.
Lors de la construction des contrôleurs administratifs, je me demande quel est le meilleur moyen d'autoriser tous les attributs de modèle.
Pour l'instant, j'ai écrit ceci:
def user_params
params.require(:user).permit(User.fields.keys)
end
Pensez-vous d'une meilleure façon?
Vous pouvez appeler la version bang du permis.
params.require(:user).permit!
Strong Params README sur Github
Code source pour référence:
def permit!
each_pair do |key, value|
convert_hashes_to_parameters(key, value)
self[key].permit! if self[key].respond_to? :permit!
end
@permitted = true
self
end
La réponse de Skull0inc fonctionne, mais vous voudrez peut-être supprimer created_at
et updated_at
. L'intention de params forts est de répertorier uniquement les attributs que vous souhaitez mettre à jour par le contrôleur. Quelque chose comme...
def user_params
params.require(:user).permit(User.column_names - ["created_at", "updated_at"])
end
Cela fonctionnerait-il?
def user_params
params.require(:user).permit(User.column_names)
end