RAILS3: Passer des paramètres arbitraires via button_to?
Je suis en train de faire quelque chose de très simple dans ma première application Rails (Rails 3) et je ne suis pas sûr de ce que je fais mal ou si il y a une meilleure approche. Ne pouvez pas trouver quoi que ce soit sur le web ou ici qui l'a résolu pour moi, malgré beaucoup de recherches.
Dans le soft que j'ai WorkRequests et des Articles. Lors de l'affichage d'un Article, je veux un bouton pour créer un WorkRequest et, lorsque la nouvelle WorkRequest formulaire s'affiche, l'article rempli. Essentiellement, je suis en train de passer l'Article.id de la nouvelle WorkRequest.
Travaille dans link_to juste en ajoutant le paramètre, mais je veux que ce soit un bouton. Tandis qu'elle indique dans l'Article du formulaire HTML en tant que paramètre de requête, il n'arrive jamais à la WorkRequest.nouvelle méthode. Cette article de 2010 explique le problème en détail, mais la solution ne fonctionne pas pour moi (voir mon commentaire à la fin de la page.)
Cela semble comme il devrait être assez facile et fréquent (une fois je l'ai trouver, il y a plusieurs autres endroits dans ma propre appli où je veux faire la même chose), mais j'ai été frapper ma tête contre ce mur depuis quelques jours maintenant. Je suis nouveau sur les Rails--c'est ma première application, j'ai donc espoir que quelqu'un de plus expérimenté peut vous aider!
Merci d'avance.
source d'informationauteur Dan Barron
Vous devez vous connecter pour publier un commentaire.
Juste des cercles de retour pour terminer cette place. Finalement j'ai résolu ce problème en utilisant link_to mais l'utilisation de jQuery pour la faire ressembler à un bouton. @kishie, si vous voulez dire que vous faites ce travail avec button_to j'aimerais voir le code, mais comme j'aime jQuery c'est résolu pour autant que je suis concerné (pour cette application, de toute façon.)
Voici le code à l'Article#afficher la vue. (La classe est ce qui la fait ressembler à un bouton via jQuery.)
Voici le code à Work_Request du contrôleur de la nouvelle méthode:
Puis le Work_Request#nouvelle vue affiche correctement.
Ajouter cette ligne de code dans vos itinéraires.rb fichier.
Il ne devrait pas être la méthode GET parce que vous êtes à l'envoi de données au serveur, via :module_id. Ce sera ensuite le travail.
Je viens de frapper un problème similaire et je l'ai eu à travailler, en passant le paramètre comme suit:
Dans l'article#show
<%= button_to("Add WorkRequest", {:controller => "work_request", :action => "new", :article_id => @article.id})%>
Dans work_requests#new
<%= f.text_field :article_id, :value => params[:article_id]%>
Si vous imbriquez vos
resources
pour:work_requests
dans:articles
dans votreroutes.rb
puis de passer votreparams[:id]
qui serait votrearticle_id
et ajouter:method => :get
à labutton_to
appel, vous devriez être bien.