Ошибка маршрута вложенных ресурсов Rails 3 - PullRequest
2 голосов
/ 26 ноября 2010

Я не могу перенаправить пользователя на нужную мне страницу после того, как он создаст новый "сервисный" ресурс.

Вот следующие маршруты: rb:

resources :wsps do
    resources :services
end

html form:

<%= form_for([@wsp,@service]) do |f| %>

Services_controller.rb:

 def new
    @wsp = current_wsp
    @service = @wsp.services.build
    respond_to do |format|
      format.html # new.html.erb
      format.xml  { render :xml => @service }
    end  
  end

def create
    @wsp = current_wsp
    @service = @wsp.services.build(params[:service])
    if @service.save
        redirect_to wsp_service_path
    end
  end

Путь wsp_service_path идет в / wsps / 1 / services и ошибка:

No route matches {:action=>"destroy", :controller=>"services"}

Что такоеЯ делаю не так?Почему я не могу использовать "wsp_service_path"?

Спасибо.

1 Ответ

3 голосов
/ 26 ноября 2010

Вы можете использовать wsp_service_path (в то время как вы должны использовать wsp_service_url, поскольку вы находитесь в контроллере). Все, что вам не хватает, это аргументы. wsp_service_path (или _url) будут ожидать два аргумента: wsp и сервис. Как только вы предоставите эти два, все заработает.

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