2010-10-14 3 views
0

Je la forme suivante:Rails 3 - Utilisation du formulaire Params dans la mise à jour d'un contrôleur?

<%=form_for [:project, @permission], :url => { :action => "update" } do |f| %> 
<% roles = Role.all %> 
Role: <%= f.collection_select :role_id, roles, :id, :name, :prompt => true %> 

<%=f.submit "Send Request" %> 
<%=f.hidden_field :user_id %> 
<% end %> 

Dans mon contrôleur je:

mettre à jour def

@permission = Permission.find_by_user_id(params[:user_id]) 
. 
. 
. 

fin

** Ce que je veux faire est de mettre à jour le role_id ,,,, donc j'ai besoin de ce qui précède pour trouver l'enregistrement d'autorisation ... Le problème est ,,, params [: user_id] revient null?

Ai-je raté quelque chose? grâce

Mise à jour

Voici les params d'erreur et demande, qui montrent les vars sont là?

POST Started "/ projets/3/autorisations/useronproject" pour 127.0.0.1 au jeu le 14 octobre 2010 12:17:12 -0700 Traitement par PermissionsController # mise à jour en HTML Paramètres: { "commit" => » Envoyer la demande "," authenticity_token "=>" KJ2C20MzTJ8VQV0NiNzOr357QKV5hWjeuazOBcS5iPU = "," utf8 "=>" ✓ "," id "=>" useronproject "," permission "=> {" role_id "=>" 1 "," user_id " => "11"}, "project_id" => "3"}

Charge de l'utilisateur (0.3ms) SELECT "users". * FROM "users" WHERE ("users". "Id" = 1) LIMIT 1

Autorisation Charger (0.1ms) SELECT "permissions". * FROM "autorisations" WHERE ("permissions". "User_id" EST NULL) LIMIT 1

voir - user_id est NULL?

Répondre

2

user_id est plus bas dans le hachage des paramètres. Essayez:

params[:permission][:user_id] 
+0

Cela fait. Je vous remercie! Des points bonus pour m'aider à comprendre pourquoi c'est le cas? Pourquoi est-ce que c'est le hash des params? thxs – AnApprentice

+0

f.hidden_field est automatiquement lié à l'objet d'autorisation. Si user_id n'appartient pas à l'objet d'autorisation, n'utilisez pas l'objet f, utilisez simplement un assistant hidden_field. – DGM

+0

BTW, utilisez votre fichier journal, il nous a dit cela. Notez que user_id est à l'intérieur des parenthèses vers lesquelles "permission" pointe. – DGM

Questions connexes