每个命令的环境摘要。
我发现现有的答案要么不完整,要么多余,要么不详尽。所以这里是每个命令的表格格式以及生成的环境是什么样的。
导轨 4.2
| Command | Rails.const_defined?( "Console" ) | Rails.const_defined?( "Server" ) | ARGV |
|------------------------------------|-------------------------------------|------------------------------------|---------------------------------|
| `rake db:migrate:status` | false | true | ["db:migrate:status"] |
| `rails console` | true | true | [] |
| `rails server` | false | true | [] |
| `rails g migration new_migration` | false | true | ["migration", "new_migration"] |
| `rails r "puts 'Hi'"` | false | true | [] |
您可以看到,仅检查定义为Rails
常量的“服务器”不会捕获生成器,例如rails g migration
. 你需要检查ARGV
来做到这一点。
我希望这有帮助。我只能立即访问 Rails 4.2,但可以随意添加其他 Rails 版本的部分,以及添加任何需要“捕获”的附加命令。