我在初始值设定项中有以下代码:

if $0 == 'irb'
  # ...
end

它在Rails 2.3中运行良好,但在Rails 3中,$0的值是'script/Rails',无论它是用Rails c还是Rails s启动的.ARGV是一个空array.如何检测应用程序是用"rails c"还是"rails控制台"启动的?

推荐答案

也许你可以试试这个

if defined?(Rails::Console)
  # in Rails Console
else
  # Not in Rails Console
end

Ruby-on-rails相关问答推荐

在ransackable_scopes中的作用域上创建activeadmin过滤器

查询Where Date.parse Rails

Ruby - 如何删除目录中早于 X 天的所有文件?

Turbo-Rails:如何将 Turbo Frame 添加到 `application.html.erb`?

Rails 7,Hotwire 动态表单,更新值不起作用

复制我的活动时,活动描述没有复制过来

Rails:序列化数据库中的对象?

来自控制台的 ActionCable.server.broadcast

为特定操作使用布局

DateTime.now 还是 Time.now?

使用 jQuery 在 Rails 中不显眼的动态表单字段

关于在不适合任何地方的 Rails 应用程序中放置类的指南

Rails:立即渲染并退出

在 Rails 中复制模型实例

设计记住我和会话

如何在 Rails 3 中将多个属性传递给 find_or_create_by?

Rspec:如何在控制器规范中分配实例变量

Sidekiq 在 docker-compose 上的 127.0.0.1:6379 (Errno::ECONNREFUSED) 上连接到 Redis 时出错

如何创建迁移以仅在索引存在时删除索引,而不是在不存在时抛出异常?

保存用户偏好的最佳方法?