在Rails中从控制台调用ApplicationController方法

Mar*_*tin 13 ruby ruby-on-rails ruby-on-rails-3

在Rails中,假设文件已经加载,如何my_method 从控制台调用此示例?

# some_file.rb
class MyClass < ApplicationController::Base
  def my_method(args)
Run Code Online (Sandbox Code Playgroud)

sla*_*ant 30

另一种非常简单的方法是使用ApplicationController自身的实例.

ApplicationController < ActionController::Base
  def example
    "O HAI"
  end
end
Run Code Online (Sandbox Code Playgroud)

然后在控制台中,您可以执行以下操作:

>> ApplicationController.new.example
Run Code Online (Sandbox Code Playgroud)

这将输出以下内容:

O HAI
Run Code Online (Sandbox Code Playgroud)

当然,这具有不能访问正常请求所有内容的限制,例如request对象本身.如果你需要这个,就像Patrick Klingemann建议的那样,你可以使用调试器...我个人推荐使用Pry:

对你来说这可能为时已晚,但希望它能帮助将来的某个人.