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

问题描述 投票:0回答:1

在跟随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

ruby-on-rails ruby command-line railstutorial.org
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.