54 votes

Paramètres puissants avec Rails 4.0 et Devise

Je suis en utilisant les rails 4.0 branche de concevoir avec ruby 2.0.0p0 et les Rails 4.0.0.beta1.

C'est le genre de question où je vérifie si je suis en train de faire de la bonne façon, ou si il y a d'autres choses que je devrais être en train de faire. Je suis sûr que beaucoup de gens se déplaçant vers les Rails 4.0 sont confrontés aux mêmes problèmes (après googler pour des choses similaires).

J'ai lu les liens suivants:

Maintenant, à l'aide de concevoir, j'ai créé un modèle d'Utilisateur, j'ai créé le contrôleur suivant à l'aide de la gist (et fait en sorte que de l'inclure dans mon fichier de routes). Mes paramètres supplémentaires sont first_name et last_name.

class Users::RegistrationsController < Devise::RegistrationsController
  def sign_up_params
    params.require(:user).permit(:first_name, :last_name, :email, :password, :password_confirmation)
  end
  def account_update_params
    params.require(:user).permit(:first_name, :last_name, :email, :password, :password_confirmation, :current_password)
  end
  private :sign_up_params
  private :account_update_params
end

Est-il autre chose que je devrais faire? Est-ce la meilleure façon de faire les choses à partir de maintenant (depuis tomber attr_accessor). Mes formulaires semble fonctionner correctement (à la fois la nouvelle et mise à jour). La gist a dit d'utiliser "resource_params" mais qui a toujours donné le "non autorisé paramètres" erreur dans mon fichier log du serveur.

66voto

szines Points 1713

Merci pour les dernières mises à jour sur Rails4 branche de Concevoir, il n'a pas vraiment besoin d'insérer des "resource_params'.

J'ai créé une nouvelle marque Rails4 application et de suivi de base de Concevoir les étapes de l'installation et de mon application fonctionne correctement, donc je pense que vous avez bien fait.

Mais il y a une modification de la gist qui vous donne quelques détails supplémentaires, en termes de paramètres si vous avez besoin de:

Source: https://gist.github.com/bluemont/e304e65e7e15d77d3cb9

# controllers/users/registrations_controller.rb
class Users::RegistrationsController < Devise::RegistrationsController

  before_filter :configure_permitted_parameters

  protected

  # my custom fields are :name, :heard_how
  def configure_permitted_parameters
    devise_parameter_sanitizer.for(:sign_up) do |u|
      u.permit(:name, :heard_how,
        :email, :password, :password_confirmation)
    end
    devise_parameter_sanitizer.for(:account_update) do |u|
      u.permit(:name,
        :email, :password, :password_confirmation, :current_password)
    end
  end
end

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X