2009-12-15 4 views
0

Comment puis-je accéder aux champs de valeurs masquées de la classe de contrôleur.Ruby on Rails Accès aux valeurs cachées du contrôleur

mon champ de valeur cachée est

<input id="user_id" name="user.id" size="30" type="text" value="<%= @user.id %>" /> 

actuellement je suis en train d'accéder à @ user.id, @user = User.find (@ user.id) mais son erreur de production comme

« id appelé pour nul, ce qui serait à tort de 4 - si vous voulez vraiment l'ID de nul, utilisez object_id »

alors comment puis-je accéder à la valeur cachée au-dessus

merci d'avance, Mahesh

+0

Votre message est corrompu, vous devriez le modifier à nouveau. – khelll

Répondre

1

Vous devez changer le nom de votre champ à user_id pour être plus traditionnel.

Vous accédez aux données POST/GET avec le hachage params.

# your controller 
params[:user_id] 
# => "field_value 
1

Deux notes rapides. J'éviterais de dépendre du user_id tel que soumis par un formulaire, c'est facile à forger. Il est préférable de l'extraire de votre authentification dans la méthode de création, de mise à jour ou de suppression du contrôleur. Deuxièmement, je regarderais dans des aides de forme, telles que hidden_field dans un form_for ou fields_for. Ensuite, vous utilisez le hachage param détaillé précédemment pour extraire les valeurs dans le contrôleur.

mymodel = MyModel.find(params[:some_field]) 
Questions connexes