私が通常見ているものとは異なる方法でリソースをネストできるかどうか疑問に思っていました。
通常、リソースは次のようになります。
resources :article do
resources :comment
end
これで URL が生成されます/article/:article_id/comment
[もちろん、comment#index の場合]
ただし、次のようなものを得るためにこれを別の方法で行うことができるかどうか疑問に思っています
/article/comment [excluding :article_id]
Article には他のすべての通常ルートがあり、コメントは最初の例と同じように動作します。/commentをcomments_controllerに接続したままにする方法はありますか、それともすべてのコメントメソッドをarticles_controllerに再配置する必要がありますか? 後で頭痛の原因になるので、避けたいと思います。
**あなたはおそらく、なぜこの文脈でこれを行う必要があるのかと尋ねているでしょう。真実は、私は別の文脈でそれをやっているということですが、これは説明が簡単です.
編集:
実際の目的は例とは異なります。コントローラー「employee_benefits」を通常のコントローラーにして、通常のリソースを持たせたいと考えています。ただし、/employee_benefits/new_type のようなことができるようにしたいです。福利厚生の種類は、新しい employee_benefit を作成するときにフォームに表示されるものです。/employee_benefits/edit_type[:id]、/employee_benefits/delete [正確ではありません]
名前空間が進むべき道だと思いますが、その方法が完全にはわかりません。
もっと編集:
現在、次のリソースを使用しています。
match '/benefits/new_type' => 'company_benefits#new_type'
match '/benefits/create_type' => 'company_benefits#create_type'
match '/benefits/types' => 'company_benefits#types'
match '/benefits/type' => 'company_benefits#types'
それ以外の
resources :company_benefits, :path => '/benefits', :as => :benefits do
<not using this line of code>
resources :company_benefit_types
</not using this line of code>
end