5

我正在使用 Rails 3.2

我希望路由与 github 非常相似,所以:

root/(username)
root/(username)/(projectname)
root/(username)/(projectname)/issus

等等

我正在尝试这样的事情:

resources :publishers do
  resources :magazines do
    resources :photos
  end
end 

但这给出了这样的路线:

/publishers/1/magazines/2/photos/3

我正在查看的一个项目执行以下操作,这似乎有效但似乎不适合我。

resources :projects, :constraints => { :id => /[^\/]+/ }, :except => [:new, :create, :index], :path => "/" do
member do
  get "team"
  get "wall"
  get "graph"
  get "files"
end

resources :wikis, :only => [:show, :edit, :destroy, :create] do
  member do
    get "history"        
  end
end
4

2 回答 2

4

如果您想摆脱 id 编号(这是 rails 默认值)并使用一个名称,我建议使用 FriendlyId gem。

观看此 railscast http://railscasts.com/episodes/314-pretty-urls-with-friendlyid

这是github页面https://github.com/norman/friendly_id

编辑

这是我要找的文章,我忘了我几个月前给它加了书签。 http://jasoncodes.com/posts/rails-3-nested-resource-slugs

于 2012-07-17T18:09:18.763 回答
0

您必须使用friendly_id和范围

scope '/:username/:projectname', module: 'users/projects', as: 'users_project' do
    resources :issus
    resources :photos
end
于 2017-07-10T00:18:46.617 回答