Kyl*_*cot 15 ruby routing ruby-on-rails ruby-on-rails-3
我正在使用Rails 3应用程序,我想根据子域将路由拆分为单独的文件.现在我在routes.rb文件中有这个:
Skateparks::Application.routes.draw do
constraints(:subdomain => 'api') do
load 'routes/api.rb'
end
end
Run Code Online (Sandbox Code Playgroud)
在我的routes/api.rb文件中,我有:
resources :skateparks
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用,因为如果我跑,rake routes我得到
undefined method `resources' for main:Object
Run Code Online (Sandbox Code Playgroud)
另外,如果我尝试导航到http://0.0.0.0:3000/,我会得到:
路由错误
No route matches "/"
Run Code Online (Sandbox Code Playgroud)
在Rails 3.2中,config.paths现在是一个哈希值,所以@sunkencity的解决方案可以修改为:
# config/application.rb
config.paths["config/routes"] << File.join(Rails.root, "config/routes/fooroutes.rb")
Run Code Online (Sandbox Code Playgroud)
将路由文件添加到app路由加载路径中:
# config/application.rb
config.paths.config.routes << File.join(Rails.root, "config/routes/fooroutes.rb")
Run Code Online (Sandbox Code Playgroud)
将您的其他路由文件包装在这样的块中。
#config/routes/fooroutes.rb
Rails.application.routes.draw do |map|
match 'FOO' => 'foo/bar'
end
Run Code Online (Sandbox Code Playgroud)
在 Rails 3.0 中为我工作