如何在控制台中测试Rails类函数?

时间:2015-12-14 17:32:48

标签: ruby-on-rails ruby amazon-web-services console elastic-beanstalk

我试图在rails控制台的Rails类中测试一些函数。

class Model
  def function1
    input_1 = ...
    input_2 = ...
    function1_hash = [ ]
    ...
    m = function2(input_1,input_2)
    function1_hash += m
  end

  def function2(input_1,input_2)
    input_1.each do |value|
      function2_hash << value
    end

    temp = input_2.anotherClassFunctionCall()
    function2_hash << temp
  end
end

所以在Rails控制台中,我试图查看这些功能是否正常工作但我一直遇到以下错误。

# Rails console
> input_1 = ...
> input_2 = ...
> Model.function2(input_1,input_2)
NoMethodError: undefined method `function2' for Model:Class

最终,我需要理智检查功能1(在更大的工作流程中肯定会失败),但似乎甚至无法识别它在同一个类中所依赖的功能。

BTW,整个rails作为Docker文件上传到AWS ELB实例中。我使用 eb ssh 来访问rails并执行上述测试。

2 个答案:

答案 0 :(得分:2)

您的function2是一种实例方法。您需要在Model类的实例上调用它,如:

Model.new.function2(input_1,input_2)

快乐的编码!

答案 1 :(得分:0)

您可以将方法设为类方法

变化:

def function2(input_1,input_2)

到:

def self.function2(input_1,input_2)