我正在将2.x rails应用程序移植到rails3;我们将其称为foo-app。 Foo-app是较大的Rails应用程序的一部分,位于main_rails_app.com/foo-app。以前,我们只是在foo-app生产配置中设置以下内容,以确保我们的foo-app路由正常运行:
ActionController::Base.relative_url_root = "/foo-app"
但是,使用rails3,我现在得到:
DEPRECATION WARNING: ActionController::Base.relative_url_root is ineffective. Please stop using it.
此后,我将配置条目更改为以下内容:
config.action_controller.relative_url_root = "/foo-app"
这主要是因为所有对外部资源(javascript / css / images)的调用都将使用/ foo-app。但是,我的路由都没有适当更改,或者换句话说,当我期望'/ foo-app'时,foo-app root_path会给我'/'。
两个问题:
最佳答案
您应该能够处理route.rb文件中的所有内容。将您当前的所有路线合并到范围中;例如。
scope "/context_root" do
resources :controller
resources :another_controller
match 'welcome/', :to => "welcome#index"
root :to => "welcome#index"
end
然后,您可以通过
rake routes
验证路由,它们应相应显示您的路由,包括上下文根目录(relative_url_root)
关于ruby-on-rails - 什么是ActionController::Base.relative_url_root的替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3181746/