我经常想要尝试小代码片段,通常比类,甚至函数小得多,只是为了确保它自己工作,所以我不需要通过运行一堆脚本来测试它,只需要修复一行代码中的小错误。
除了irb / pry之外,我还想测试特定于Rails的代码,例如Object.blank?
。所以,我想加载Rails库,但我不需要Rails控制台给我的全部功能。特别是当应用程序不处于工作状态时,REPL根本不会打开,只是提供了手头故障的堆栈跟踪。
如果有人知道如何实现这个中间立场,可能通过使用特定的gem路径和require
语句来加载我提到的其他REPL,你能说明这些命令吗?
我正在使用RVM管理gemset的项目内部工作,并且根本不想修改那个环境,也许只修改我的一般终端环境。
答案 0 :(得分:2)
.blank?
来自ActiveSupport。实际上你可以在没有其余Rails的情况下加载ActiveSupport:
irb(main):001:0> require 'active_support/all'
irb(main):002:0> [].blank?
=> true
all.rb
文件加载所有ActiveSupport。
使用ActiveRecord和其他rails组件也可以这样做;例如:
irb(main):001:0> require 'active_record'
=> true
irb(main):002:0> class NewModel < ActiveRecord::Base; end
=> nil
irb(main):003:0> NewModel.new
ActiveRecord::ConnectionNotEstablished: No connection pool for NewModel
这给出了一个错误,因为我没有打扰设置数据库,但它表明Rails非常模块化。我在没有Rails的项目中使用了ActiveRecord(rails
gem is actually an empty gem只将各种active_ * gems定义为依赖项。)
答案 1 :(得分:1)
大多数Rails“魔法”来自Active Support Core Extensions。您可以将其包含在常规irb
会话中,以获取大多数关联方法,例如blank?
。
启动IRB会话并运行
require 'active_support'
require 'active_support/core_ext'