5

Rails3.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のデフォルト)を取り除き、名前を使用したい場合は、FriendlyIdgemをお勧めします。

この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を使用する必要があります

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