当我们从终端键入"rails"或"ruby"时会发生什么?



完整的初学者问题,但我想知道当我在终端中键入rails g draft:resource ...之类的内容时会发生什么。我知道最终的结果,但我不明白为什么它有效。

换句话说,我到底在做什么?我在叫铁路项目吗?(如果是,这个程序在哪里?为什么我可以在没有CD的任何地方调用它?(

同样,为什么我也可以做ruby -version?在安装Ruby和Rails之后,我的计算机发生了什么变化,使得我的终端现在能够理解这些命令?具体执行的是什么?

谢谢!

想知道当我键入rails g draft:resource。。。进入终端

调用rails是调用由您从中安装的开源软件包rails公开的命令行界面(CLI(https://guides.rubygems.org/可能通过名为gem(即gem install rails(的命令行工具。

g是单词generate的别名,是CLI的一个子命令,它根据以下参数(draft:resource等(生成一些代码。它只是rails软件包的另一部分。您可以在此处查看源代码:https://github.com/rails/rails/blob/master/railties/lib/rails/commands.rb#L6.

为什么我也可以做ruby版本?

在某个时刻,安装了ruby(通常由rvm或rbenv安装(。在终端中,您可以通过在命令之前键入command -vwhich,并从中深入了解命令正在调用的程序。

$ which ruby
/Users/avinashmoondra/.rbenv/shims/ruby
$ which rails
/Users/avinashmoondra/.rbenv/shims/rails

例如,这些是等效的:

$ /Users/avinashmoondra/.rbenv/shims/ruby -v
ruby 2.6.4p104 (2019-08-28 revision 67798) [x86_64-darwin18]
$ ruby -v
ruby 2.6.4p104 (2019-08-28 revision 67798) [x86_64-darwin18]

Ruby(和SQLite3(是安装Rails所必需的,请参阅:https://guides.rubyonrails.org/getting_started.html#installing-轨道。如果您使用rbenv,一个ruby版本管理器,您将得到与上面类似的结果。

安装Ruby和Rails后,我的计算机发生了什么变化,使我的终端现在能够理解这些命令?

rbenv文档中对此进行了解释,如下所示:https://github.com/rbenv/rbenv#how-它是有效的。摘要:在高级上,rbenv使用注入到PATH中的填充程序可执行文件截获Ruby命令,确定应用程序指定的Ruby版本,并将命令传递给正确的Ruby安装

最新更新