在跟随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
有没有人有关于下划线意味着什么的更多文档?
我没有在指南中看到它。
答案 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