Rails 3中的深度嵌套路由



我已经在我的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

有什么想法是抛出错误?

您需要传入一个合同和一个产品,所以类似于:

 new_product_contract_payment_path(@product, @contract) 

相关内容

  • 没有找到相关文章