Rails 3遗留“资产”路线

时间:2012-02-08 19:32:02

标签: routes asset-pipeline assets rails-3-upgrade

我正在从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

(注意单数与复数)

是否可以在不破坏现有路径的情况下保持向后兼容性?

1 个答案:

答案 0 :(得分:3)

是的,这是可能的。

发生这种情况的原因是因为Sprockets(处理资产管道)接管了/ assets路径。

您可以通过将其添加到application.rb

来更改Sprockets使用的路线
config.assets.prefix     = "/x"

其中x是新路线。

我在我的一个制作应用中执行此操作,因为paperclip将其文件存储在/ assets中。

升级提示:检查已升级的应用中的管道设置与last section of the asset pipeline guide中的管道设置。