1

ネストされたリソース (名前空間、ページ、コメント) がいくつかあり、URL は次のようになります: http://example.com/namespaces/objects/pages/super-page— 長すぎます。

ルートからリソース名を削除する最良の方法は何ですか? これに似たものを取得したい: http://example.com/objects/super-page/

更新:show名前空間コントローラーにはアクションのみがあります。

4

2 に答える 2

1

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'
于 2012-08-24T08:48:05.513 に答える
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

于 2012-08-23T15:22:06.017 に答える