Rails 3嵌套资源路由错误

时间:2010-11-26 19:52:27

标签: ruby-on-rails ruby-on-rails-3

在创建新的“服务”资源后,我无法将用户重定向到我想要的页面。

这是routes.rb:

resources :wsps do
    resources :services
end

html表单:

<%= 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 个答案:

答案 0 :(得分:3)

您可以使用wsp_service_path(因为您在控制器中时应该使用wsp_service_url)。你所缺少的只是争论。 wsp_service_path(或_url)会期望两个参数:wsp和服务。一旦你提供了这两个,它就可以了。

redirect_to wsp_service_url(@wsp, @service)