我有一个rails应用程序,我想介绍一些静态页面。由于我的应用程序同时拥有" public"面对全面的管理后端,我决定将我的控制器移动到相应的子文件夹中,因此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 / 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
这有效,但它
如何在路由器中最好/最优雅地声明这些静态页面,并维护一个与路由器中的目录结构/politik/kvalitet
不同的url结构,但文件夹结构中只有/public/policy/kvalitet
?< / p>
答案 0 :(得分:0)
我最终使用scope
来完美地解决问题:
scope module: 'public' do
namespace :policy, path: 'politik' do
get 'miljoe'
get 'kvalitet'
get 'kunde'
get 'personale'
end
end
这会生成以下帮助者,网址和操作。
policy_miljoe GET /politik/miljoe(.:format) public/policy#miljoe
policy_kvalitet GET /politik/kvalitet(.:format) public/policy#kvalitet
policy_kunde GET /politik/kunde(.:format) public/policy#kunde
policy_personale GET /politik/personale(.:format) public/policy#personale