完整的初学者问题,但我想知道当我在终端中键入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 -v
或which
,并从中深入了解命令正在调用的程序。
$ 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安装