rails - qu'est-ce exactement ne hidden_field et hidden_field_tag faire?
J'ai lu à travers le techy définition de hidden_fields
, mais je ne suis pas sûr de ce qu'il fait vraiment. Ma compréhension est qu'il vous permet de passer dans un attribut de certains paramètres. Par exemple, si vous avez un riche rejoindre modèle, vous pouvez utiliser le hidden_field
pour attribuer le user_id à la jointure d'attribut de modèle pour l'utilisateur. Est-ce exact?
Si oui, serait-il préférable de le faire dans la forme ou le contrôleur?
hidden_field
crée simplement <input type="hidden" .... />"
.
OriginalL'auteur noob | 2011-10-11
Vous devez vous connecter pour publier un commentaire.
Ces deux méthodes sont des aides pour créer un HTML balise input de type "hidden", et oui, ceux-ci sont utilisées pour ajouter des paramètres à une requête (typiquement un POST). Vraiment le paramètre peut être n'importe quel élément d'information que vous souhaitez envoyer avec la demande. Attention, cependant, que les champs cachés sont facilement manipulés.
Voici un exemple qui va envoyer un id utilisateur dans un champ caché
Alors que vous pouvez passer à des choses telles que user_id est comme ça, je trouve que le besoin s'en fait rare. Si un user_id est toujours nécessaire pour une situation donnée, vous pourriez envisager d'utiliser imbriqués les itinéraires http://guides.rubyonrails.org/routing.html#nested-resources.
hidden_field
ne serait pas sécuritaire. Je suis en train de l'enregistrer via le contrôleur dans lecreate
méthode, mais je suis rencontrer des problèmes. Quand vous faites des associations via riche joindre les modèles, ils sont censé mettre à jour des choses comme user_id automatiquement? Si oui, je suis évidemment faire quelque chose de mal avec mes associations. Merci. J'ai aussi posté une autre question: question si vous voulez prendre un coup d'oeil. Merci.Ah, je pense que le problème est mieux expliqué dans l'autre question, je vais poster là
OriginalL'auteur
Il serait de générer un type masqué de champ de saisie...
<input type="hidden" />
C'est un moyen de stocker des informations que vous souhaitez soumis avec le formulaire sans avoir à disposer d'un champ visible.
De la la documentation:
hidden_field_tag 'tags_list'
génère...<input id="tags_list" name="tags_list" type="hidden" />
hidden_field_tag
est destiné à être utilisé sans un modèle alors qu'hidden_field
est destiné à être utilisé en conjonction avec unform_for
appel et un modèle.hidden_field(:signup, :pass_confirm)
génère...<input type="hidden" id="signup_pass_confirm" name="signup[pass_confirm]" value="#{@signup.pass_confirm}" />
OriginalL'auteur