在Ruby on Rails中链接自己的方法

时间:2010-06-12 22:20:16

标签: ruby-on-rails

在我的Rails应用程序中,我习惯在许多地方使用如下语法,包括helpers / application_helper.rb:

def my_method(x,y)
  return x+y
end

我也习惯于在我的应用程序的任何地方调用结果方法,使用如下语法:

my_method(2,3)

但是,我希望能够使用如下语法:

class_from_my_rails_app.my_method(3)

我如何以及在何处定义my_method以便我可以像这样使用它?

我很高兴参考文档,但我不知道后一种风格是什么。你怎么称呼它?

非常感谢,

史蒂芬。

2 个答案:

答案 0 :(得分:1)

我认为你在谈论创建一个类方法。

class MyClass
  def self.my_method(x,y)
    return x+y
  end
end

这允许你拨打

MyClass.my_method(2,3)

这可能属于模型类,而不是辅助类,轨道方式。

答案 1 :(得分:1)

您要创建的内容称为实例方法。实施如下:

class YourClass

  def initalize(x)
    @x =x
  end

  def do_something(y)
    @x + y
  end

end

您将使用以下内容:

my_class = YourClass.new(20)

puts my_class.do_something(10)
=> 30

但实际上这对面向对象编程和ruby来说是如此根本,我甚至对这个问题感到惊讶。

我建议阅读ruby作为一种语言,一本非常好的书,让你开始The Well-grounded Rubyist,从所有基础知识开始,并将其用于所有细节。

我希望这会有所帮助。如果我误解了你的问题,我道歉,并很乐意详述任何部分。