我在初始化程序中有这段代码:
if $0 == 'irb'
# ...
end
它适用于Rails 2.3,但在Rails 3中,无论是使用rails c还是rails s启动,$ 0的值都是'script / rails'。 ARGV是一个空数组。如何检测应用程序是否已使用“rails c”或“rails console”启动?
答案 0 :(得分:82)
你可以尝试这个
if defined?(Rails::Console)
# in Rails Console
else
# Not in Rails Console
end
答案 1 :(得分:0)
很多年以后,有一种更好的方法来注册要在控制台上运行的块(使用railtie界面)。
因此在初始化程序中,您可以编写:
Rails.application.console do
# your code here
end
关于这一点的好想法是,它也适用于runner
,并且也应该与spring一起使用(但我没有测试)。