Локальная копия Rails в приложении rails - PullRequest
2 голосов
/ 18 июля 2009

Я недавно обновил проект рельсов, над которым работаю, с 2.0.5 до 2.3.2. Я заметил, что в файле vendor / rails была локальная копия файлов rails 2.0.5, и мне было интересно, нужно ли мне также поместить туда локальную копию файлов rails 2.3.2 или просто оставить их? Что считается лучшей практикой?

Ответы [ 2 ]

3 голосов
/ 18 июля 2009

Да. Копия Rails, находящаяся в vendor/rails, фактически используется в предпочтении по сравнению с гемами Rails, установленными в масштабе всей системы - иными словами, хотя вы обновили установку Rails, ваше приложение фактически все еще работает на 2.0.5.

Каталог vendor/rails существует, так что вы можете «заморозить» ваше приложение до определенной версии Rails, что сделает его менее уязвимым к изменениям конфигурации машины, на которой он работает. Это так чертовски полезно, что есть автоматизированный способ управления каталогом. Чтобы удалить существующую версию Rails, расположенную в vendor/rails, перейдите в корень директории вашего проекта Rails и сделайте следующее:

rake rails:unfreeze

Чтобы затем установить самые последние гемы Rails в вашей системе в vendor/rails, выполните:

rake rails:freeze:gems

Есть еще несколько вещей, которые вы можете сделать с vendor/rails. Проверьте rake -T для полного списка команд.

P.S. Если вы когда-нибудь слышали, как кто-то говорит о том, что их Rails-установка «вендорская», это то, что они имеют в виду.

1 голос
/ 21 февраля 2011

Между тем все немного изменилось.

rake rails:freeze

и

rake rails:unfreeze

устарели. Вместо этого вы должны использовать:

 bundle install --path vendor/bundle

и

bundle install --system

чтобы переключиться обратно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...