2011-04-20 162 views
0

我在我的show.html.erb有这个Rails中嵌套很深的路线3

No route matches {:action=>"new", :controller=>"payments"}

当我使用时显示的路线和付款控制器在那里。这是我在付款控制器中的新方法。

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 

有什么想法抛出错误?

回答

4

你需要在合同和产品来传递,所以像:

new_product_contract_payment_path(@product, @contract) 
+0

我应该提到我所做的尝试,并获得此错误:'不路由匹配{:动作=>“新“,:controller =>”payments“,::product_id => nil,:contract_id =>#<合同ID:17,product_id:4,author_id:1,开始:”2011-01-14“,结束于:”2012- 01-14“,created_at:”2011-01-14 01:49:02“,updated_at:”2011-01-14 01:49:02“>}' – Slick23 2011-04-20 18:45:26

+0

固定... @product未被传递给合同#显示 – Slick23 2011-04-20 19:17:53

+1

是的,这通常是原因:)很高兴听到它的作品! – 2011-04-20 19:19:13