Глубоко вложенные маршруты в Рельсах 3 - PullRequest
0 голосов
/ 20 апреля 2011

У меня есть это в моем 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

Есть мысли о том, что выдает ошибку?

1 Ответ

4 голосов
/ 20 апреля 2011

Вам необходимо передать в контракт и продукт, так что-то вроде:

 new_product_contract_payment_path(@product, @contract) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...