我想知道是否有可能以不同于我通常看到的方式嵌套资源。
通常,资源是这样的:
resources :article do
resources :comment
end
这会产生 URL /article/:article_id/comment
[当然是评论#index]
但是,我想知道我是否可以采取不同的方式来获得类似的东西
/article/comment [excluding :article_id]
Article 将具有所有其他正常路由,并且 comment 的行为与第一个示例中的行为相同。有没有办法做到这一点,以便我可以保持 /comment 与 comments_controller 的连接,或者我是否需要将所有评论方法重新定位到articles_controller?我宁愿避免这种情况,因为它会在以后引起头痛。
**您可能会问为什么我需要在这种情况下这样做。事实是,我是在不同的背景下做的,但这个更容易解释。
编辑:
实际目的与示例不同。我希望控制器“employee_benefits”成为常规控制器并拥有常规资源。但是,我希望能够执行 /employee_benefits/new_type 之类的操作。一种福利是在创建新员工福利时出现在表单中的东西。我希望能够做 /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