路线与空路径和帮助

时间:2015-04-16 13:56:22

标签: ruby-on-rails routes

我正在尝试实现像“github.com/josevalim/inherited_resources”这样的“àlagithub”网址。

我用这段代码实现了我的目标:

 resources :users, :path => '', only: [] do
   resources :projects, :path => '', only: [:show]
 end

但是现在,我找不到一种方法可以正确地重定向到这条路线。

当我在控制台中运行rake routes时,我所拥有的只是

GET      /:user_id/:id(.:format)        projects#show

没有名称可以找到像旧版users_project_path一样的帮助方法。

我错过了什么吗?谢谢!

2 个答案:

答案 0 :(得分:1)

我最近做了类似的事情,尝试以下

scope '/:user_id', as: :user do
  resources :projects, path: '', only: [:show]
end

运行rake routes应该会给你

user_project GET    /:user_id/:id(.:format)        projects#show

这将为您提供正确的user_project_path(:user_id, :id)路线助手。

答案 1 :(得分:0)

您正在删除路径,因为您可以获取route_path,用于建立路由名称。

resources :users, :path => '', only: [] do
   get :projects, "/:user_id/:id", :to => "project#show", :as => :project_user
 end

如果您不想使用,可以使用此代码生成路径:

url_for([@user, @project])