2009-10-01 8 views
0

comment puis-je passer un objet polymorphe à un autre contrôleur?rails façon de transférer l'objet polymorphe à travers l'URL

par exemple rediriger des messages/1/

aux demandes/nouvelle? Object_type = Message & object_id = 1

ou, deuxième exemple, à partir de fichiers/154/

aux demandes/nouvelle ? object_type = fichier & object_id = 154

est

redirect_to new_request_path(:object_type => params[:controller].classify, :object_id => params[:id]) 

à droite?

modèle de demande a

belongs_to  :object , :polymorphic => true 

Répondre

1

Vous imbriquer vos itinéraires, par exemple:

messages/1/requests/new 
files/154/requests/new 

redirect_to new_comments_request_path(Comment.find(1)) 

routes guide

+0

grâce à des informations sur les routes imbriquées. dans mon cas, tous les objets polymorphes, comme Message, Fichier, Commentaire etc. sont redirigés dans la même méthode. est-il possible d'utiliser quelque chose comme "new_request_path (@polymorphicobject)" au lieu de "new_comments_request_path", "new_messages_request_path" etc séparément? –

+0

vous pouvez utiliser http://github.com/josevalim/inherited_resources, si vous l'utilisez il y a un assistant d'URL "new_resource_url" - je pense que c'est ce que vous cherchez. – amitkaz

Questions connexes