我正在从Rails 2.3.14应用升级到Rails 3.2.1 到目前为止,唯一的问题是无法指定到我们遗留资产资源的路由。
在 config / application.rb :
config.assets.enabled = false
以下作品(路径不正确):
resources :company_assets, :controller => 'assets', :as => :assets
但是,当然,路径是'/ company_assets / *'。
一旦我尝试将路径设置为'/ assets / *',路由就无法生成。通过“无法生成”,我的意思是:
rake routes | grep assets
什么也没告诉我。
以下是无法正确生成的路线示例:
resources :company_assets, :controller => 'assets', :as => :assets, :path => 'assets'
# or
resources :assets
当我在Rails控制台中查看时,似乎存在与资产相关的路由,但它们似乎等同于指定:
resource :assets
而不是:
resources :assets
(注意单数与复数)
是否可以在不破坏现有路径的情况下保持向后兼容性?
答案 0 :(得分:3)
是的,这是可能的。
发生这种情况的原因是因为Sprockets(处理资产管道)接管了/ assets路径。
您可以通过将其添加到application.rb
:
config.assets.prefix = "/x"
其中x是新路线。
我在我的一个制作应用中执行此操作,因为paperclip将其文件存储在/ assets中。
升级提示:检查已升级的应用中的管道设置与last section of the asset pipeline guide中的管道设置。