Essayer d'ajouter un attribut personnalisé imbriqué, Profil Strong> (document mongoïde), à mon concevoir utilisateur strong>. Lorsque le formulaire d'enregistrement du congé est soumis, il devrait créer à la fois un objet J'aimerais que le résultat final ressemble à quelque chose Comme ceci dans mon MongoDB: P> Malheureusement, je reçois cela dans ma console chaque fois que je soumets mon inscription. Il crée un utilisateur avec succès mais ne parvient pas à créer un profil associé. P> J'ai configuré: p> modèles / profil.rb: strong> p> contrôleurs / utilisateurs / enregistrements_controller.rb strud> p> routes.rb fort> p> J'ai déjà examiné ces postes liés, ils ne semblaient pas aider: P> On dirait que le congé prend en charge des paramètres puissants dans sa branche "Rails4" (qui est censée être fusionnée en maître dans Quelques jours.) Vous regardez via le code, il semble que vous puissiez remplacer une fonction de paramètres pour chaque action sur les contrôleurs de congise. Pour créer de nouveaux utilisateurs, son malgré la modification de ce nom à la bonne, elle n'a toujours pas fonctionné ... Seuls que tous les paramètres utilisant ce bang semblaient fonctionner: p> évidemment, ce type de défaite le but des paramètres puissants ... alors maintenant la question est de savoir comment Je permite mes attributs imbriqués
signe_up_params code> au lieu de
ressource_params code> dans mon exemple. P>
profil_attributes code> (comme on le voit dans ma question originale)? P> p>
4 Réponses :
J'ai eu exactement le même problème et que Bien sûr, la différence est que la mine n'est que des valeurs scalaires, pendant que vous 'Re essayer de masse attribuer une relation ... Je suppose que c'est là que vous devriez rechercher. P> Au fait, les documentations sont toujours inexistitions dans ce sujet (trop nouveau) et que les commissions de code suggèrent de remplacer devise_parameter_sanitizer , qui n'est pas nécessaire. P> p>
Dans la classe héritante de Devise :: InscriptionsController B>, voici comment vous remplacez / prolongez-le
Oui, c'est le moyen de le faire ... pour les hashes (comme mon profil_attributes code>), vous devez spécifier chaque attribut intégré explicitement par conception. c'est-à-dire quelque chose comme:
J'ai utilisé votre code et cela a fonctionné pour moi!
Voici ce que j'ai fait p>
J'ai eu le même problème lorsque vous vous connectez, il est écrit: Voici ce que je fais: p> créer un fichier dans '# {rails.root} / lib 'Fold, mon est ecestrong>lib/hzsapa_parameter_sanitizer.rbPe> Vous pouvez remplacer cette méthode dépend de votre problème: P > Paramètres non autorisés: Mot de passe, mémoriser, mémoriser code>.
Et parce que j'ai un contrôleur qui héritant
hzsapa_parameter_sanitizer.rb code> et requis dans
devise_parameter_sanitizer code> méthode dans Application_Controller.rb
class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
def devise_parameter_sanitizer
@devise_parameter_sanitizer ||= if defined?(ActionController::StrongParameters)
HzsapaParameterSanitizer.new(resource_class, resource_name, params)
else
Devise::BaseSanitizer.new(resource_class, resource_name, params)
end
end
end
J'ai trouvé une méthode différente qui permet à trouvez et en savoir plus sur https://github.com/plataformatec/devise#strong-paramètres p> p>