Rails 3 устаревших "актива" маршрутов - PullRequest
1 голос
/ 08 февраля 2012

Я нахожусь в процессе обновления приложения 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 Ответ

3 голосов
/ 09 февраля 2012

Да, это возможно.

Причина, по которой это происходит, заключается в том, что Sprockets (который обрабатывает конвейер ресурсов) принимает маршрут / assets.

Вы можете изменить маршрут, который использует Sprocketsдобавив это к вашему application.rb:

config.assets.prefix     = "/x"

Где x - новый маршрут.

Я делаю это в одном из моих производственных приложений, потому что paperclip хранит свои файлы в / assets.

Один совет по обновлению: сравните параметры конвейера в обновленном приложении с параметрами, указанными в последнем разделе руководства по конвейеру активов .

...