我想要将大量路由分成不同的路径文件。
我创建了一个" routes-secondary.rb"并在那里增加了一些路线。然后我尝试在应用程序的主要路径中添加这样的东西.rb:
要求"#{Rails.root} /config/routes-secondary.rb"
但是这不起作用,因为Rails没有识别routes-secondary.rb中的路由。有没有办法正确地做到这一点?
答案 0 :(得分:4)
(我已更新此答案以利用RouteReloader进行开发工作)
您可以轻松完成此操作(即使在Rails 4中!)。
配置/ routes.rb中:
Rails.application.routes.draw do
resources :foo
end
配置/路由/ included.rb:
Rails.application.routes.draw do
resources :bar
end
配置/初始化/ routes.rb中
Rails.application.routes_reloader.paths.unshift *Dir[File.expand_path("../../routes/**/*.rb", __FILE__)]
这会将config / routes下的所有文件添加到应用程序路由中,并且它可能会按文件名的反向词汇顺序添加它们。如果你想以不同的顺序加载路由而不是glob,你可以按照所需的顺序将路由推送或卸载到routes_reloader.paths。
rake routes:
Prefix Verb URI Pattern Controller#Action
foo_index GET /foo(.:format) foo#index
POST /foo(.:format) foo#create
new_foo GET /foo/new(.:format) foo#new
edit_foo GET /foo/:id/edit(.:format) foo#edit
foo GET /foo/:id(.:format) foo#show
PATCH /foo/:id(.:format) foo#update
PUT /foo/:id(.:format) foo#update
DELETE /foo/:id(.:format) foo#destroy
bar_index GET /bar(.:format) bar#index
POST /bar(.:format) bar#create
new_bar GET /bar/new(.:format) bar#new
edit_bar GET /bar/:id/edit(.:format) bar#edit
bar GET /bar/:id(.:format) bar#show
PATCH /bar/:id(.:format) bar#update
PUT /bar/:id(.:format) bar#update
DELETE /bar/:id(.:format) bar#destroy
答案 1 :(得分:0)