5

Ich bin mit Rails 3.2Rails Routing wie Github

Ich mag so ziemlich genau wie Github haben Routing, so:

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

usw.

ich so etwas wie dies versuchen:

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

Aber das gibt Routen wie folgt aus:

Ein Projekt, das ich betrachte, tut das Folgende, das scheint zu funktionieren, scheint aber nicht für mich zu sein.

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 

Antwort

4

Wenn Sie die ID-Nummer loswerden wollen (was Rails-Standard ist) und einen Namen verwenden, schlage ich das FriendlyId-Juwel vor.

Dit Railscast http://railscasts.com/episodes/314-pretty-urls-with-friendlyid

und hier ist die Github Seite https://github.com/norman/friendly_id

EDIT

Dies ist der Artikel die ich suchte, ich vergaß ich es vor Monaten vorgemerkt. http://jasoncodes.com/posts/rails-3-nested-resource-slugs

+0

interessant aussieht. Ich werde diesen Railscast ausprobieren müssen. Ich frage mich, wie es intern gespeichert wird und ob die Verwendung einer anderen Datenbank von Bedeutung ist. – Ron

+1

Das ist cool. Nicht genau was ich will aber hilfreich sein wird. Was ich mehr suche ist, wie Github funktioniert. Damit Sie keine URL wie/users/Jonovono brauchen, sondern nur/Jonovono funktioniert. – Jonovono

+1

http://stackoverflow.com/questions/2968722/github-url-style –

0

Sie müssen friendly_id und Umfang nutzen

scope '/:username/:projectname', module: 'users/projects', as: 'users_project' do 
    resources :issus 
    resources :photos 
end