2011-08-04 211 views
0

我有一个应用程序,每个purchase_request有一个purchase_order。路由问题

我的模型建立像这样

purchase_order.rb

... 
belongs_to :purchase_request 
... 

purchase_request.rb

... 
has_one :purchase_order 
... 

我的路由设置像这样:

的routes.rb

resources :purchase_requests do 
    :purchase_orders 
    end 

在我看来,我链接到它,像这样:

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

,并在我的形式,我有:

<%= f.hidden_field :purchase_request %> 

,但没有加载purchase_request的ID。任何帮助将是巨大的

回答

0

我不知道这是否是做了正确的方式,但我所做的:

purchase_orders_controller我放在:

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

然后在观点我所做的:

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

以及最后但并非最不重要的,我把这个在我_form部分:

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

如果你没有'的form_for [@purchase_request,@purchase_order]',我不会把'purchase_request_id'已经在'action'形式?那么就不需要隐藏领域。 – jimworm

+0

这没有奏效。 []返回语法错误,()不会正确加载它。它只是返回到purchase_requests页面,并显示purchase_order页面的链接(如果它已创建,页面将消失) –

+0

嗯......这就是文档所说的内容。你有'@ purchase_order'集吗?你的嵌套路线也需要说'resources:purchase_orders'才能正确注册。 http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-form_for – jimworm