1

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

(注意单数与复数)

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

4

1 回答 1

3

是的,有可能。

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

您可以更改 Sprockets 使用的路线,方法是将其添加到您的application.rb

config.assets.prefix     = "/x"

其中 x 是新路线。

我在我的一个生产应用程序中执行此操作,因为回形针将其文件存储在 /assets 中。

升级的一个提示:检查升级后的应用程序中的管道设置与资产管道指南最后一部分中的设置

于 2012-02-08T20:10:45.287 回答