Запутаться в некоторых концепциях рельсов, нужны пояснения - PullRequest
1 голос
/ 23 сентября 2011

Я запутался в некоторых понятиях Rails, таких как: gemset, rubygems, bundler.У меня есть следующие три вопроса:

1. После того, как я установил инструмент RVM, как правильно настроить среду разработки для создания проекта rails (скажем, проект rails v2.3)

2. В чем разница между "gem install XXX" и "bundle install"?Могу ли я понять это так, что "bundle install" устанавливает все гемы, необходимые в приложении, в то время как "gem install XXX" устанавливает только указанный "XXX" гем?Есть ли другая разница?Почему бы тогда не использовать bundler для установки определенных направляющих?

3. Если я хочу использовать rails v3.0 для project_one, и использовать rails v2.3 для project_two.Как создать два проекта с конкретными версиями рельсов?Как насчет разных версий ruby ​​для разных проектов?Нужно только указать нужную версию в Gemfile или установить нужную версию в пути проекта?

Ответы [ 2 ]

6 голосов
/ 23 сентября 2011

RVM позволяет создавать различные наборы гемов наряду с различными версиями ruby.

Вы можете установить различные версии ruby ​​с помощью rvm install.

rvm install 1.8.7

rvm install 1.9.2

rvm list known сообщит вам о доступныхРеализации ruby, которые вы можете установить.

Скажем, у вас есть два проекта: project_one и project_two, и оба имеют разные зависимости gem.Таким образом, вы захотите создать два пустых набора гемов с, скажем, Ruby 1.9.2.

rvm gemset create 1.9.2@project_one
rvm gemset create 1.9.2@project_two

Чтобы использовать гемс проекта project_two, вы можете использовать rvm use для выбора набора гемов.

rvm use 1.9.2@project_two

Вы также можете добавить указанную выше команду в файл с именем .rvmrc в корневом каталоге вашего приложения rails, которое будет загружаться автоматически при каждом входе в корневой каталог приложения.

Если вы хотитеиспользуйте Rails 2.3.8 для project_one,

rvm use 1.9.2@project_one
gem install rails -v 2.3.8

и Rails 3.1.0 для project_two,

rvm use 1.9.2@project_two
gem install rails -v 3.1.0

Разница между gem install и bundle install заключается в том, что gem install устанавливаеттолько указанный драгоценный камень в ваш набор драгоценностей, в то время как bundle install устанавливает все драгоценные камни, расположенные в Gemfile вашего приложения.

2 голосов
/ 23 сентября 2011

1) Если у вас есть настройка rvm, я предлагаю добавить в ваш файл приложения .rvmrc и в этом файле:

rvm --create ree-1.8.7-2011.03@myappname

Это всегда будет использовать указанную версию ruby ​​(в этом случае 'ree-1.8.7-2011.03'), и все гемы будут установлены в наборе гемов rvm с именем: myappname. Этот файл всегда будет проверять, что каждый раз, когда вы переходите в эту папку из bash_console, он указывает rvm на правильную среду.

2) Если у вас есть настройка rvm, то:

gem install XXX создает gem в заданном наборе rvm gemset или, если не в глобальном наборе rvm gemset

sudo gem install XXX добавит вам драгоценных камней Global gems

Как вы сказали, вы всегда должны использовать Bundle install и группировать гемы для разработки, тестирования, производства.

3) Этого можно добиться, как я уже говорил в пункте 1), просто создайте этот файл в своем приложении

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