2011-08-04 2 views
0

J'ai une application qui a un purchase_order pour chaque purchase_request.Problèmes de routage

Mes modèles sont mis en place comme si

purchase_order.rb

... 
belongs_to :purchase_request 
... 

purchase_request.rb

... 
has_one :purchase_order 
... 

Mes itinéraires sont mis en place comme ceci:

routes.rb

resources :purchase_requests do 
    :purchase_orders 
    end 

et à mon avis je créer un lien vers elle comme si:

<%= link_to "Purchase Order", new_purchase_request_purchase_order_path(@purchase_request) %> 

et ma forme je:

<%= f.hidden_field :purchase_request %> 

mais il ne se charge pas l'identifiant de la purchase_request. Toute aide serait grande

Répondre

0

Je ne sais pas si cela est la bonne façon de le faire, mais ce que je faisais:

dans le purchase_orders_controller I placé:

... 
def new 
@purchase_request = PurchaseRequest.find(params[:purchase_request_id]) 
... 

puis dans le nouvelle vue je l'ai fait:

<%= render 'form', :purchase_request_id=>@purchase_request.id %> 

et last but not least, je mets dans mon _form partielle:

<%= f.hidden_field :purchase_request_id, :value=>purchase_request_id %> 
+0

Si vous avez 'form_for [@purchase_request, @purchase_order]', ne serait pas votre 'purchase_request_id' être déjà dans le' action' de la forme? Ensuite, il n'y a pas besoin du champ caché. – jimworm

+0

Cela n'a pas fonctionné. Le [] renvoie une erreur de syntaxe et() ne le charge pas correctement. Cela revient simplement à la page purchase_requests et affiche le lien vers la page purchase_order (qui disparaît si elle est créée) –

+0

Hmm ... c'est ce que disent les docs. Avez-vous un ensemble '@ purchase_order'? Votre route imbriquée doit également indiquer 'resources: purchase_orders' pour vous enregistrer correctement. http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-form_for – jimworm