Ruby on rails 对一些rails概念感到困惑,需要一些解释

Ruby on rails 对一些rails概念感到困惑,需要一些解释,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-3.1,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.1,我对一些Rails的概念感到困惑,比如:gemest、rubygems、bundler。我有以下三个问题: 1.安装RVM工具后,设置开发环境以创建rails项目(比如rails v2.3项目)的正确步骤是什么 2.gem install XXX“和”bundle install“之间有什么区别?我是否可以理解为“bundle install”一次安装应用程序中需要的所有gem,而“gem install XXX”只安装指定的“XXX”gem?还有其他区别吗?为什么不使用bundler来安装特定

我对一些Rails的概念感到困惑,比如:gemest、rubygems、bundler。我有以下三个问题:

1.安装RVM工具后,设置开发环境以创建rails项目(比如rails v2.3项目)的正确步骤是什么

2.gem install XXX“和”
bundle install
“之间有什么区别?我是否可以理解为“
bundle install
”一次安装应用程序中需要的所有gem,而“
gem install XXX
”只安装指定的“
XXX
”gem?还有其他区别吗?为什么不使用bundler来安装特定的rails呢


3.如果我想在项目1中使用rails v3.0,在项目2中使用rails v2.3。如何使用特定的rails版本创建这两个项目?不同项目的不同ruby版本如何?我只需要在Gemfile中指定所需的版本,还是在项目路径下安装所需的版本?

RVM允许您在不同的ruby版本旁边创建不同的gemset

您可以使用
rvm install
安装不同版本的ruby

rvm安装1.8.7

rvm安装1.9.2

rvm-list-known
将告诉您可以安装的可用ruby实现

比如说,您有两个项目:projectone和projecttwo,它们都有不同的gem依赖关系。因此,您需要使用Ruby 1.9.2创建两个空gemeset

rvm gemset create 1.9.2@project_one
rvm gemset create 1.9.2@project_two
要使用project_two的gemset,可以使用
rvm use
选择gemset

rvm use 1.9.2@project_two
您还可以将上述命令添加到rails应用程序根路径中名为
.rvmrc
的文件中,只要您将cd刻录到应用程序的根目录中,rvm就会自动加载该文件

如果您想在project_one中使用Rails 2.3.8

rvm use 1.9.2@project_one
gem install rails -v 2.3.8
项目2的Rails 3.1.0

rvm use 1.9.2@project_two
gem install rails -v 3.1.0

gem-install
bundle-install
之间的区别在于
gem-install
只将指定的gem安装到gemset中,而
bundle-install
安装位于应用程序的
Gemfile
中的所有gem

RVM允许您在不同的ruby版本旁边创建不同的gemset

您可以使用
rvm install
安装不同版本的ruby

rvm安装1.8.7

rvm安装1.9.2

rvm-list-known
将告诉您可以安装的可用ruby实现

比如说,您有两个项目:projectone和projecttwo,它们都有不同的gem依赖关系。因此,您需要使用Ruby 1.9.2创建两个空gemeset

rvm gemset create 1.9.2@project_one
rvm gemset create 1.9.2@project_two
要使用project_two的gemset,可以使用
rvm use
选择gemset

rvm use 1.9.2@project_two
您还可以将上述命令添加到rails应用程序根路径中名为
.rvmrc
的文件中,只要您将cd刻录到应用程序的根目录中,rvm就会自动加载该文件

如果您想在project_one中使用Rails 2.3.8

rvm use 1.9.2@project_one
gem install rails -v 2.3.8
项目2的Rails 3.1.0

rvm use 1.9.2@project_two
gem install rails -v 3.1.0
gem-install
bundle-install
之间的区别在于
gem-install
只将指定的gem安装到gemset中,而
bundle-install
安装位于应用程序的
Gemfile
中的所有gem

1)如果您有rvm设置,我建议在您的应用程序文件中添加程序 在该文件中:

rvm --create ree-1.8.7-2011.03@myappname
这将始终使用指定版本的ruby(在这种情况下为'ree-1.8.7-2011.03'),所有gems将安装在名为:myappname的rvm gemset中。该文件将始终确保每次从bash_控制台转到该文件夹时,它都会将rvm指向正确的环境

2) 如果您有rvm设置,则:

gem安装XXX在指定rvm gemset或全局rvm gemset中创建gem

sudo gem install XXX将向您的全球gems添加gems

正如您所说,您应该始终使用Bundle安装和groupgems进行开发、测试和生产

3) 这可以实现,就像我在第1点中所说的那样)只需在你的应用程序中创建此文件

1)如果你有一个rvm设置,我建议在你的应用程序文件中添加它 在该文件中:

rvm --create ree-1.8.7-2011.03@myappname
这将始终使用指定版本的ruby(在这种情况下为'ree-1.8.7-2011.03'),所有gems将安装在名为:myappname的rvm gemset中。该文件将始终确保每次从bash_控制台转到该文件夹时,它都会将rvm指向正确的环境

2) 如果您有rvm设置,则:

gem安装XXX在指定rvm gemset或全局rvm gemset中创建gem

sudo gem install XXX将向您的全球gems添加gems

正如您所说,您应该始终使用Bundle安装和groupgems进行开发、测试和生产


3) 这可以实现,就像我在第1点中所说的那样)只需在你的应用程序中创建这个文件

Hi,“1.9.2”在命令“rvm gemset create 1.9”中指示了什么。2@project_one@Leem它指的是ruby版本。命令“rvm应该使用1.9吗?”。2@project_two“是否在项目二路径下执行?还是外部?我可以通过更改“rvm gemset create ruby”中的版本号为不同的项目指定不同的ruby版本吗-VERSION@project_name“?@Leem它可以在任何地方执行,并将保持不变,直到您切换它或加载
.rvmrc
。您好,“1.9.2”在命令中指示了什么“rvm gemset创建1.9。2@project_one@Leem它指的是ruby版本。命令“rvm应该使用1.9吗?”。2@project_two“在project_two path下执行?还是在外部执行?我可以通过更改“rvm gemset create ruby”中的版本号为不同的项目指定不同的ruby版本吗-VERSION@project_name“?@Leem它可以在任何地方执行,并将保持不变,直到您切换它或
.rv