Ruby Padrino中的嵌套路由

Ruby Padrino中的嵌套路由,ruby,routes,padrino,Ruby,Routes,Padrino,我想将路由分组到层次结构中。为此,我创建了一个顶级控制器,因此: MyApp.controllers :group do disable :layout get '/' do {'dummy' => 'value'}.as_json end end 现在我想创建以:group为父级的路由,因此: MyApp.controllers :items, :parent => :group do disable :layout get '/', :provi

我想将路由分组到层次结构中。为此,我创建了一个顶级控制器,因此:

MyApp.controllers :group do
  disable :layout

  get '/' do
    {'dummy' => 'value'}.as_json
  end
end
现在我想创建以
:group
为父级的路由,因此:

MyApp.controllers :items, :parent => :group do
  disable :layout

  get '/', :provides => :json do
    # get list of items
  end
end
我的问题是我可以从REST客户端访问
localhost:port/group
200 OK
),但我无法访问
localhost:port/group/items
404未找到


如果我删除
:parent
选项,一切都会运行良好。我的padrino版本0.10.5.5。有什么想法吗?

嵌套路由的工作方式与您尝试的不同

当您使用
:parent
时,它希望以某种方式标识父资源。例如:

MyApp.controllers :items, :parent => :group do
  get :index do
    # returns list of items for a group
  end
end
将生成以下路由:

"/group/#{params[:group_id]}/items"
它希望您指定您正在谈论的组,以便获取该特定组的项目

这就是为什么它说它找不到
“/group/items”
,它不是您使用
:parent=>:group
创建的路由,您没有在参数中传递
:group\u id

如果您确实想使用
“/group/items”
,那么您的items控制器应该如下所示:

MyApp.controllers :items do
  get '/group/items' do
    # returns list of items
  end
end

嵌套管线的工作方式与您尝试执行的不同

当您使用
:parent
时,它希望以某种方式标识父资源。例如:

MyApp.controllers :items, :parent => :group do
  get :index do
    # returns list of items for a group
  end
end
将生成以下路由:

"/group/#{params[:group_id]}/items"
它希望您指定您正在谈论的组,以便获取该特定组的项目

这就是为什么它说它找不到
“/group/items”
,它不是您使用
:parent=>:group
创建的路由,您没有在参数中传递
:group\u id

如果您确实想使用
“/group/items”
,那么您的items控制器应该如下所示:

MyApp.controllers :items do
  get '/group/items' do
    # returns list of items
  end
end

嵌套管线的工作方式与您尝试执行的不同

当您使用
:parent
时,它希望以某种方式标识父资源。例如:

MyApp.controllers :items, :parent => :group do
  get :index do
    # returns list of items for a group
  end
end
将生成以下路由:

"/group/#{params[:group_id]}/items"
它希望您指定您正在谈论的组,以便获取该特定组的项目

这就是为什么它说它找不到
“/group/items”
,它不是您使用
:parent=>:group
创建的路由,您没有在参数中传递
:group\u id

如果您确实想使用
“/group/items”
,那么您的items控制器应该如下所示:

MyApp.controllers :items do
  get '/group/items' do
    # returns list of items
  end
end

嵌套管线的工作方式与您尝试执行的不同

当您使用
:parent
时,它希望以某种方式标识父资源。例如:

MyApp.controllers :items, :parent => :group do
  get :index do
    # returns list of items for a group
  end
end
将生成以下路由:

"/group/#{params[:group_id]}/items"
它希望您指定您正在谈论的组,以便获取该特定组的项目

这就是为什么它说它找不到
“/group/items”
,它不是您使用
:parent=>:group
创建的路由,您没有在参数中传递
:group\u id

如果您确实想使用
“/group/items”
,那么您的items控制器应该如下所示:

MyApp.controllers :items do
  get '/group/items' do
    # returns list of items
  end
end