我在show.html.erb
:
<%= link_to "Pay on this contract", new_product_contract_payment_path %>
这在routes.rb
resources :products do
resources :contracts do
resources :payments
end
end
但是当我查看合约页面时,我收到此错误:
No route matches {:action=>"new", :controller=>"payments"}
当我使用rake routes
并且支付控制器在那里时,路线显示出来。这是我在支付控制器中的新方法。
def new
@contract = Contract.find(params[:contract])
@payment = @contract.line_items.build
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @payment }
end
end
有关抛出错误的内容的任何想法?
答案 0 :(得分:4)
您需要传递合同和产品,例如:
new_product_contract_payment_path(@product, @contract)