web-dev-qa-db-ja.com

Change Rails 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

Railsバージョン3.2.14を使用するようにrvmを指定するにはどうすればよいですか?

前もって感謝します

26
Pol0nium

新しいRails特定のRailsこのバージョンのアプリを作成できます

Rails _3.2.14_ new myApp
47
Santhosh

Railsバージョン3.2.14を使用するようにrvmを指定するにはどうすればよいですか?

rvmはRailsとは関係ありません。 rvmは、複数のRubyインストールの管理に使用されます。また、各Rubyインストールは複数のgemsetに関連付けることができます。たとえば、Ruby 1.9.3がインストールされており、Ruby 1.9.3の2つのgemset:gemsetAとgemsetBを作成したとします。 gemsetAでRuby 1.9.3を使用するようにrvmに指示すると、次のことを意味します。

  1. RubyプログラムはRuby 1.9.3によって実行されます。

  2. RubyプログラムはgemsetAのgemを必要とします(これにより、gemsetAで定義されたメソッド(またはクラス)をプログラムで使用できるようになります)が、gemsetBのgemは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によって実行され、プログラミングgemset内のすべてのgemがRubyプログラムに必要になります。ショートカットを使用して、これらの両方のコマンドを1ステップで実行できます。

rvm use Ruby 1.9.3-p194@programming

Rubyバージョンとgemsetを '@'で結合するだけです。

しかし、Rails -vと入力すると、次のようになります:

$ Rails -v
Rails 4.0.0

これは、現在のgemsetにRails 4.0.0のgemが含まれているためです。 $ Rails -v出力Rails 3.2.14を表示するには、Rails 3.2.14 gemを含むgemsetに切り替えるようにrvmに指示する必要があります。

ただし、rvmをRailsプロジェクトの適切なRailsバージョンとgemsetに自動的に切り替えることができます。 Gemfileで、Rubyバージョンの後にコメントを追加します。

Ruby '2.0.0'
#Ruby-gemset=railstutorial4_gems

その後、Railsプロジェクトを含むディレクトリに切り替えるたびに、rvmは現在のRubyをRuby 2.0.0に、現在のgemsetをrailstutorial4_gemsに自動的に切り替えます。 Railsアプリからディレクトリを変更すると、rvmは現在のRubyおよび現在のgemsetを元の状態に戻します。

私は単なるRails初心者ですが、新しいプロジェクトを作成するために使用する手順は、railstutorialブック( 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 Ruby-1.9.3-p194@myapp_gemset --create

2)

.../Rails_projects$ gem install Rails --version 3.2.14

現在のgemsetはmyapp gemsetであるため、このコマンドはRails 3.2.14 gemをmyapp gemsetにインストールします。

3)

.../Rails_projects$ Rails new myapp
.../Rails_projects$ cd myapp

現在のgemsetはまだmyapp_gemsetです。

4)

.../Rails_projects/myapp$ Rails -v
Rails 3.2.14

誰もが次の2つのgemsetsが一体何なのか疑問に思っている場合に備えて:

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

=> (default)
   global

rvmは、インストールするRubyバージョンごとにこれらの2つのgemsetを作成します。 Rubyバージョンをインストールした後、そのRubyバージョン用に自分でgemsetを作成せずにgemをインストールすると、gemは(デフォルトの)gemsetに入ります。また、すべてのgemsetに特定のgemを含める場合は、グローバルgemsetに切り替えてそこにgemをインストールできます。

更新:-------

他のRubyバージョンマネージャーとの互換性を維持するために、Gemfileではなく別のファイルでプロジェクトのRubyバージョンとgemset名を指定できます。

$ cd ~/Rails_projects/myapp

~/Rails_projects/myapp$ echo 2.0.0 > .Ruby-version
~/Rails_projects/myapp$ echo myapp_gemset > .Ruby-gemset

プロジェクトのディレクトリにcdを挿入すると、同じ自動Rubyバージョンとgemsetの切り替えが引き続き行われます。 rvmドキュメントを参照してください here

43
7stud

見つけたパス/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"

この方法で、次の2つのRailsインストールを切り替えることができます。

rvm use 2.0.0@Rails3
Rails -v             # Rails 3.2...
rvm use 2.0.0@Rails4
Rails -v             # Rails 4.0...
21
mpapis

あなたがすべき:gem install 'Rails' -v '3.2.13'

rvmを使用している場合は、クリーンなgemsetを使用する必要があります:

rvm gemset create rvm gemset use

クリーンなgemsetができたので、Railsをインストールします

gem install Rails -v '3.2.13'

そしてRails app、を作成します

Railsの新しいapp_name

5
KKB

Railsのバージョンを追加することができます。

$ gem install Rails --version 3.2.14

そして、そのバージョンでアプリを作成します:

$ Rails _3.2.14_ new myapp

最後に、「Gemfile」の内容を確認して確認できます。

...
 gem 'Rails', '3.2.14'
...
0
Gamaliel

まず、使用する予定のバージョンRubyバージョンであることを確認して、グローバルgemsetを確認してください。

$Ruby -v

次に、グローバルジェムセットに切り替えます(グローバルジェムセットはすべてのジェムセットに適用されるため、クリーンでユニバーサルな状態を保つようにしてください...

$rvm gemset use global

その後、Harshaが入力して言及した「railties」gemのように、gemリストに影響を与える可能性のあるgemを確認します。

$gem list

グローバルジェムセットには、他のすべてのジェムセットに影響を与える偶発的なジェムが存在する場合があります。置き忘れたgemを見つけた場合は、単にそれをアンインストールできます。

$gem uninstall examplegem 

または、そのgemの特定のバージョンについては、引用符で囲まれたバージョンで-vを渡します

$gem uninstall examplegem -v"3.2.1"

また、異なるgemset間の変更のためのRVMの作成と使用に関する7studのコメントを読んでください。

0
jrichocean

「railties(4.0.0)」が問題です。誤ってインストールされたと思いますか?

Gemアンインストールrailtiesを使用してそのバージョンをアンインストールし、4.0.0でオプションを選択します。

これで、コマンド「Rails -v」は、「3.2.14」である予想バージョンを返します。

0
user3342067