Devise et parameters forts

Je voudrais savoir comment intégrer ces deux gems (option + parameters forts), puisque des parameters forts seront probablement ajoutés au kernel de rails en 4.0

toute aide est la bienvenue merci

Mise à jour pour le lecteur 4.x

class ApplicationController < ActionController::Base before_filter :configure_permitted_parameters, if: :devise_controller? protected def configure_permitted_parameters devise_parameter_sanitizer.permit(:sign_up, keys: [:username]) devise_parameter_sanitizer.permit(:sign_in, keys: [:username]) devise_parameter_sanitizer.permit(:account_update, keys: [:username]) end end 

Après avoir ajouté les deux gemmes, le dispositif fonctionnera normalement.

Mise à jour: Avec la dernière version de Devise 3.x, comme décrit à la page # strong-parameters , la clé d'authentification (normalement le champ email) et les champs de mot de passe sont déjà autorisés. Cependant, s'il y a des champs supplémentaires sur le formulaire d'inscription, vous devrez laisser savoir à Devise les champs supplémentaires à autoriser. Le moyen le plus simple consiste à utiliser un filtre:

 class ApplicationController < ActionController::Base before_filter :configure_permitted_parameters, if: :devise_controller? protected def configure_permitted_parameters devise_parameter_sanitizer.for(:sign_up) << :username end end 

Pour Devise 2.x, si vous utilisez la fonction de sécurité nécessitant explicitement des parameters entachés de liste blanche dans le modèle utilisateur:

 include ActiveModel::ForbiddenAtsortingbutesProtection 

Les modifications nécessaires sont disponibles sur https://gist.github.com/3350730, qui remplace certains contrôleurs.

Le moyen le plus simple consiste à append un simple filtre avant dans votre ApplicationController. Si vous avez différents rôles et / ou d’autres scénarios plus complexes, il existe d’autres options sur le lien ci-dessous:

https://github.com/plataformatec/devise#strong-parameters

 before_filter :configure_sanitized_params, if: :devise_controller? def configure_sanitized_params devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:firstname, :designation_id, :middlename, :previous_experiance_year, :previous_experiance_month, :lastname, :email, :username, :password, :password_confirmation, :previous_experiance, :empid, :dob, :timezone, :doj, :gender, :education, :comments, :locked, :deactivated, :reason, :phone, :deactivated_date, :image) } devise_parameter_sanitizer.for(:account_update) { |u| u.permit(:remove_image, :firstname, :designation_id, :middlename, :lastname, :email, :username, :empid, :dob, :timezone, :doj, :gender, :education, :comments, :locked, :deactivated, :reason, :phone, :deactivated_date, :image) } end