ruby-on-rails - 什么是ActionController::Base.relative_url_root的替代品?

标签 ruby-on-rails ruby-on-rails-3

我正在将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会给我'/'。

两个问题:
  • 什么是ActionController::Base.relative_url_root的替代品
  • (如果它是config.action_controller.relative_url_root),那么为什么我的路由没有反射(reflect)我设置的relative_url_root值?
  • 最佳答案

    您应该能够处理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/

    相关文章:

    ruby-on-rails - 在 rails 中获取文件的 mp3 和 mp4 时间长度

    ruby-on-rails - rails : switch to puma for request specs

    ruby - Rails 3 是否具有与 merb 的内置 run_later 函数等效的功能?

    ruby-on-rails - 使用 Carrierwave-Video 上传视频时出现错误 : "Video Failed to transcode with FFmpeg."

    ruby-on-rails-3 - 测试整个 Rspec 套件失败

    ruby-on-rails - Rails 应用程序中 Grape::Middleware::Formatter#call 方法的新遗物自定义检测

    javascript - 使用 Uppy 槽神社上传图像返回 405 方法不允许

    ruby-on-rails - mail.perform_deliveries = false 在 ActionMailer 拦截器中不起作用

    ruby-on-rails - rails : Self joins

    ruby-on-rails - 如何定期获取/更新 Rails 中的值?