访问Rails类/模型方法

时间:2011-08-05 08:58:11

标签: ruby-on-rails ruby class methods

我是rails的新手,正在找出编写某些方法的最佳方法。

我正在尝试编写属于某个模型的方法,并且可以在不启动实例的情况下进行访问。到目前为止,我已经在我的班级PaymentNotification<的ActiveRecord ::基

def url
   url_for(:controller => 'payment_notifications', :only_path => false)
end

这里的问题是我需要这样做才能访问网址

n = PaymentNotification.new
n.url

在我的代码中,我希望能够编写PaymentNotification.url来访问与该模型相关的方法。

也许我正在考虑这个错误的方式,有人可以指导我。基本上,我想要实现的是每个模型都可以拥有一组方法和属性,以便它们都是有条理的,我从代码中知道每个方法声明的文件,而不是仅仅调用

payment_notification_url

可能位于任何不相关的初始化文件中。我看到了辅助方法,但似乎我仍然无法使用点语法,并且必须编写类似“payment_notification_url”的内容来访问我的网址

有关最佳方法的任何想法吗?

1 个答案:

答案 0 :(得分:1)

您需要通过self关键字定义一个类方法。

def self.url
   url_for(:controller => 'payment_notifications', :only_path => false)
end

然后您可以使用PaymentNotification.url

class A
  def self.a
    p "Class method"
  end

  def b
    p "Instance Method"
  end
end

A.a   #Class method
#A.b #NoMethodError

a = A.new
a.b #Instance Method
#a.a    #NoMethodError