ネストされたリソース (名前空間、ページ、コメント) がいくつかあり、URL は次のようになります:
http://example.com/namespaces/objects/pages/super-page
— 長すぎます。
ルートからリソース名を削除する最良の方法は何ですか? これに似たものを取得したい:
http://example.com/objects/super-page/
更新:show
名前空間コントローラーにはアクションのみがあります。
ネストされたリソース (名前空間、ページ、コメント) がいくつかあり、URL は次のようになります:
http://example.com/namespaces/objects/pages/super-page
— 長すぎます。
ルートからリソース名を削除する最良の方法は何ですか? これに似たものを取得したい:
http://example.com/objects/super-page/
更新:show
名前空間コントローラーにはアクションのみがあります。
shallow
たとえば、ルーティングでパラメーターを使用できます。
resources :namespaces, :shallow => true do
resources :objects do
resources :pages
end
end
そして、次のようなルートを使用できます
page_path(1) #=> '/pages/1'
object_page_path(1,1) #=> '/object/1/pages/1'
namespace_page_path(1, 1) #=> '/namespace/1/pages/1'
リソースにパス属性を設定できます
resources :pages, :path => '' do
この記事は、URL のhttp://jasoncodes.com/posts/rails-3-nested-resource-slugsをカスタマイズするのに非常に役立ちました。
ID を取り除き、slug をカスタマイズするための素晴らしい gem、 Friendly_id もあります。http://railscasts.com/episodes/314-pretty-urls-with-friendlyid