Mar*_*kus 40 console ruby-on-rails ruby-on-rails-3
我在初始化程序中有这个代码:
if $0 == 'irb'
# ...
end
Run Code Online (Sandbox Code Playgroud)
它适用于Rails 2.3,但在Rails 3中,$ 0的值是'script/rails',无论它是用rails c还是rails s启动的.ARGV是一个空数组.如何检测应用程序是否已使用"rails c"或"rails console"启动?
Adi*_*ghi 82
你也许可以试试这个
if defined?(Rails::Console)
# in Rails Console
else
# Not in Rails Console
end
Run Code Online (Sandbox Code Playgroud)
许多年后,有一种更好的方法来执行此注册块以在控制台上运行(使用railtie接口)。
所以在初始化器中你可以写:
Rails.application.console do
# your code here
end
Run Code Online (Sandbox Code Playgroud)
好的考虑是它也适用于runner
并且它也应该适用于 spring(但我没有测试过)。
归档时间: |
|
查看次数: |
5410 次 |
最近记录: |