我有一个 Rails 应用程序,我想在其中介绍一些静态页面。由于我的应用程序同时具有“公共”面孔和全面的管理后端,因此我决定将我的控制器移动到相应的子文件夹中,因此 app/controllers 仅包含两个子文件夹。
现在,我正在创建一个包含公司政策的政策部分。
到目前为止,我已经提出了这个解决方案,但它不起作用
namespace :policy, path: 'politik' do
get 'miljoe'
get 'kvalitet'
get 'kunde'
get 'personale'
end
这将创建以下路线:
policy_miljoe GET /politik/miljoe(.:format) policy#miljoe
policy_kvalitet GET /politik/kvalitet(.:format) policy#kvalitet
policy_kunde GET /politik/kunde(.:format) policy#kunde
policy_personale GET /politik/personale(.:format) policy#personale
短路线和正确路径。这一切都很好,除了......它在 app/controllers 中查找控制器,而不是在 app/controllers/public 中查找。添加一个
namespace :policy, path: 'politik', controller: 'public/policy' do
没有做到这一点。
到目前为止,我唯一的“解决方案”是创建一个指向控制器的虚假资源路由并执行额外的收集路由,如下所示:
resources :policy, path: 'politik', controller: 'public/policy', only: [] do
collection do
get 'miljoe'
get 'kvalitet'
get 'kunde'
get 'personale'
end
end
这有效,但它
- 无缘无故地为 url 助手添加索引,所以我得到的是 miljoe_policy_index_path 而不是 policy_miljoe_path。
- 以一种奇怪的方式阅读,因为资源意味着宁静,而这些页面没有任何宁静。
我怎样才能最好/最优雅地在路由器中声明这些静态页面并维护一个看起来与/politik/kvalitet
路由器中的目录结构不同但/public/policy/kvalitet
在文件夹结构中的 url 结构?