我是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”的内容来访问我的网址
有关最佳方法的任何想法吗?
答案 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