Подтвердить что ты не робот

Изменить версию рельсов, используемую rvm

Вот мои локальные драгоценности:

$ gem list

*** LOCAL GEMS ***

actionmailer (4.0.0, 3.2.14)
actionpack (4.0.0, 3.2.14)
activemodel (4.0.0, 3.2.14)
activerecord (4.0.0, 3.2.14)
activerecord-deprecated_finders (1.0.3)
activeresource (3.2.14)
activesupport (4.0.0, 3.2.14)
arel (4.0.0, 3.0.2)
atomic (1.1.13)
builder (3.1.4, 3.0.4)
bundler (1.3.5)
bundler-unload (1.0.1)
erubis (2.7.0)
hike (1.2.3)
i18n (0.6.5)
journey (1.0.4)
json (1.8.0)
mail (2.5.4)
mime-types (1.24)
minitest (4.7.5)
multi_json (1.7.9)
polyglot (0.3.3)
rack (1.5.2, 1.4.5)
rack-cache (1.2)
rack-ssl (1.3.3)
rack-test (0.6.2)
rails (3.2.14)
railties (4.0.0, 3.2.14)
rake (10.1.0)
rdoc (3.12.2)
rubygems-bundler (1.2.2)
rubygems-update (2.0.7)
rvm (1.11.3.8)
sprockets (2.10.0, 2.2.2)
sprockets-rails (2.0.0)
thor (0.18.1)
thread_safe (0.1.2)
tilt (1.4.1)
treetop (1.4.15)
tzinfo (0.3.37)

Но когда я набираю rails -v, я получаю следующее:

 $ rails -v
Rails 4.0.0
 $ which rails
/Users/polonium/.rvm/rubies/ruby-2.0.0-p247/bin/rails

Как я могу указать rvm для использования рельсов версии 3.2.14?

Заранее спасибо

4b9b3361

Ответ 1

Вы можете создать новое приложение rails с определенной версией рельсов, например

rails _3.2.14_ new myApp

Ответ 2

Как мне указать rvm для использования rails версии 3.2.14?

рвм не имеет ничего общего с рельсами. rvm используется для управления несколькими установками ruby. И каждая из ваших установок ruby может быть связана с несколькими наборами гемов. Например, скажем, у вас установлен ruby 1.9.3 и вы создали два набора гемов для ruby 1.9.3: gemsetA и gemsetB. Если вы скажете rvm использовать ruby 1.9.3 с gemsetA, это означает:

  1. Ваши программы ruby будут выполняться ruby 1.9.3.

  2. Вашим программам ruby может потребоваться любой драгоценный камень в gemsetA (который затем позволяет вашей программе использовать методы (или классы), определенные в gemsetA), но любые драгоценные камни в gemsetB не могут быть просмотрены вашей программой ruby.

Вот конкретный пример:

~$ rvm list

rvm rubies

   ruby-1.8.7-p370 [ i686 ]
 * ruby-1.9.3-p194 [ x86_64 ]
=> ruby-2.0.0-p0 [ x86_64 ]
   ruby-2.0.0-p247 [ x86_64 ]

# => - current
# =* - current && default
#  * - default


~$ rvm use 1.9.3-p194
Using /Users/7stud/.rvm/gems/ruby-1.9.3-p194

,

~$ rvm gemset list   (This lists only the gemsets for the current ruby version)

gemsets for ruby-1.9.3-p194 (found in /Users/7stud/.rvm/gems/ruby-1.9.3-p194)
=> (default)
   global
   programming
   rails3tutorial
   rails4

~$ rvm gemset use programming
Using ruby-1.9.3-p194 with gemset programming

После того, как я это сделаю, мои программы ruby будут выполняться с помощью ruby 1.9.3, и любые гемы из набора гемов программирования могут потребоваться в моей программе ruby. Вы можете использовать ярлык для выполнения обеих этих команд за один шаг:

rvm use ruby [email protected]

Вы просто комбинируете версию ruby и набор гемов с символом @между ними.

Но когда я печатаю рельсы -v, я получаю это:

$ rails -v
Rails 4.0.0

Это потому, что текущий набор гемов содержит гем для рельсов 4.0.0. Если вы хотите видеть вывод $ rails -v Rails 3.2.14 $ rails -v Rails 3.2.14, то вы должны указать rvm переключиться на набор гемов, который содержит гем rails 3.2.14.

Однако вы можете сделать так, чтобы rvm автоматически переключался на правильную версию rails и gemset для вашего проекта rails. В своем Gemfile добавьте комментарий после версии ruby:

ruby '2.0.0'
#ruby-gemset=railstutorial4_gems

Затем, когда вы переключаетесь в каталог, содержащий ваш проект rails, rvm автоматически переключает текущий ruby на ruby 2.0.0, а текущий gemset на railstutorial4_gems. Если вы измените каталоги из вашего приложения rails, rvm изменит текущий ruby и текущий gemset обратно на прежние.

Я только начинающий, но вот шаги, которые я использую для создания нового проекта, которые прямо из учебника по железной дороге (http://ruby.railstutorial.org/ruby-on-rails-tutorial-book)

1)

.../rails_projects$ rvm use <ruby version here>@<new gemset name here> --create 

e.g.

.../rails_projects$ rvm use [email protected]_gemset --create

2)

.../rails_projects$ gem install rails --version 3.2.14

Поскольку текущим набором гемов является набор гемов myapp, эта команда устанавливает гем rails 3.2.14 в набор гемов myapp.

3)

.../rails_projects$ rails new myapp
.../rails_projects$ cd myapp

Текущий набор гемов все еще myapp_gemset.

4)

.../rails_projects/myapp$ rails -v
Rails 3.2.14

В случае, если кому-то интересно, что, черт возьми, означают следующие два набора гемов:

gemsets for ruby-1.9.3-p194 (found in /Users/7stud/.rvm/gems/ruby-1.9.3-p194)

=> (default)
   global

rvm создает эти два набора гемов для каждой устанавливаемой вами версии ruby. После установки версии ruby, если вы сами не создаете набор гемов для этой версии ruby и устанавливаете гем, тогда этот гем переходит в набор гемов (по умолчанию). И, если вы хотите, чтобы все ваши наборы гемов содержали определенный гем, вы можете переключиться на глобальный набор гемов и установить его там.

Обновление: -------

Чтобы обеспечить совместимость с другими менеджерами версий ruby, вы можете указать версию ruby и имя набора гемов для вашего проекта в другом файле, а не в Gemfile:

$ cd ~/rails_projects/myapp

~/rails_projects/myapp$ echo 2.0.0 > .ruby-version
~/rails_projects/myapp$ echo myapp_gemset > .ruby-gemset

Вы все еще будете получать то же автоматическую версию рубина и gemset переключение, когда вы cd в каталог проекта. Смотрите RVM документы здесь.

Ответ 3

найденный вами путь /Users/polonium/.rvm/rubies/ruby-2.0.0-p247/bin/rails - это не правильный путь, который вы нашли бы в стандартной установке rvm при правильном использовании rvm, что вы увидите: /Users/polonium/.rvm/gems/ruby-2.0.0-p247/bin/rails

чтобы он работал правильно, попробуйте этот поток:

rvm use 2.0.0
rvm gemset empty
rvm use @rails3 --create 
gem install rails -v "~>3.2"
rvm use @rails4 --create
gem install rails -v "~>4"

Таким образом, теперь вы можете переключаться между этими двумя установками рельсов с помощью:

rvm use [email protected]
rails -v             # rails 3.2...
rvm use [email protected]
rails -v             # rails 4.0...

Ответ 4

вам следует: gem install 'rails' -v '3.2.13'

Вы должны использовать чистый гемсет, если вы используете rvm, вы можете попробовать:

rvm gemset create Использование rvm gemset

Теперь у вас есть чистый гемсет, время установки рельсов,

gem install rails -v '3.2.13'

, а затем создайте приложение rails,

reils new app_name

Ответ 5

"railties (4.0.0," проблема у вас есть. Я предполагаю, что она была установлена ​​по ошибке?

Удалите эту версию, используя gem, удалите railties, а затем выберите опцию с 4.0.0.

Теперь команда "rails -v" вернет вашу ожидаемую версию "3.2.14"

Ответ 6

Обязательно проверьте глобальный гемсет, сначала убедитесь, что вы находитесь в рубиновой версии, которую собираетесь использовать

$ruby -v

Затем переключитесь на глобальный гемсет (глобальный гемсет применим ко всем гемземам, поэтому не забудьте сохранить его чистым и универсальным... или глобальным, отсюда и название)

$rvm gemset use global

После этого проверьте список драгоценных камней для драгоценных камней, которые могут повлиять на него, как камень "railties", о котором говорит Харша, набрав

$gem list

Иногда глобальный гемсет может быть заполнен случайным драгоценным камнем, который затронет все другие гемзеты. Если вы обнаружите неуместную драгоценность, вы можете удалить ее просто с помощью

$gem uninstall examplegem 

или для конкретной версии этого прохода gem в -v с версией в кавычках

$gem uninstall examplegem -v"3.2.1"

И прочитайте комментарий 7stud о создании и использовании RVM для изменения между различными gemset.

Ответ 7

Вы можете добавить желаемую версию Rails:

$ gem install rails --version 3.2.14

А затем создайте приложение с этой версией:

$ rails _3.2.14_ new myapp

Наконец, вы можете проверить содержимое "Gemfile", чтобы подтвердить:

...
 gem 'rails', '3.2.14'
...