我可以在Rails控制台中定义别名吗?

new*_*ike 4 rails-console ruby-on-rails-3

我试着编辑我的〜/ .irbrc文件并定义show_tbls方法来获取我拥有的表,因为命令很长,所以我试着创建一个更容易使用的函数.

require 'hirb' ; Hirb.enable
require 'irb/completion'

def show_tbls
    ActiveRecord::Base.connection.tables
end
Run Code Online (Sandbox Code Playgroud)

当我运行show_tbls时,它显示错误如下

1.9.3-p448 :001 > show_tbls()
NoMethodError: undefined method `show_tbls' for main:Object
        from (irb):1
        from /home/poc/.rvm/gems/ruby-1.9.3-p448/gems/railties-3.2.13/lib/rails/commands/console.rb:47:in `start'
        from /home/poc/.rvm/gems/ruby-1.9.3-p448/gems/railties-3.2.13/lib/rails/commands/console.rb:8:in `start'
        from /home/poc/.rvm/gems/ruby-1.9.3-p448/gems/railties-3.2.13/lib/rails/commands.rb:41:in `<top (required)>'
        from script/rails:6:in `require'
        from script/rails:6:in `<main>'
1.9.3-p448 :002 > show_tbls
NameError: undefined local variable or method `show_tbls' for main:Object
Run Code Online (Sandbox Code Playgroud)

Sai*_*aev 5

在内核模块中定义你的方法

module Kernel
  def show_tbls
    ActiveRecord::Base.connection.tables
  end
end
Run Code Online (Sandbox Code Playgroud)