在rails教程中生成一个新的示例应用程序

时间:2017-12-18 18:23:33

标签: ruby-on-rails ruby command-line railstutorial.org

在跟随rails教程时,是否有人知道 5.1.2 在测试环境方面意味着什么?是否具有指定使用哪个rails版本的重要性我曾经没有指定。

清单3.1:生成一个新的示例应用程序。

$ cd ~/environment
$ rails _5.1.2_ new sample_app
$ cd sample_app/

https://www.railstutorial.org/book/static_pages

有没有人有关于下划线意味着什么的更多文档?

我没有在指南中看到它。

http://guides.rubyonrails.org/command_line.html

1 个答案:

答案 0 :(得分:2)

rails是一个分布在Ruby gem中的可执行文件。运行rails时会收到gem install rails命令。

宝石的一个令人困惑的方面是您可以安装多个版本。例如,在我的计算机上,我有3个版本的rails

$ gem list -e rails

*** LOCAL GEMS ***

rails (5.1.4, 5.0.6, 4.2.10)

运行rails命令时,实际执行了哪个版本?实际上,Ruby总是执行您安装的最新版本。但是,如果您不想使用最新版本(或者不记得哪个版本是最新版本)会怎样?

这就是下划线语法的用武之地。这是rubygems的一个功能,它允许您通过将下划线包围的版本作为第一个参数来指定要执行的gem版本。例如,它使用rails版本5.0.6运行rails new

$ rails _5.0.6_ new

您引用的教程可能是针对特定版本的Rails编写的。所以作者告诉你使用下划线语法来确保你使用他们想要的Rails版本,以防你安装了更新版本的Rails。

请注意,这仅适用于rails new命令。生成Rails应用程序后,只要需要运行Rails命令,就可以使用特殊的bin/rails脚本。此脚本非常智能,可以根据项目中的Gemfile了解要使用的Rails版本。

附注:rubygems的下划线行为似乎没有在任何地方记录。您可以在此处查看实现此行为的代码:https://github.com/rubygems/rubygems/blob/55df5dbb5d917809a27a5881ddf3c0b5543b011f/lib/rubygems/installer.rb#L732-L734