gpt4 book ai didi

ruby-on-rails - Ruby on Rails 实例与类方法

转载 作者:数据小太阳 更新时间:2023-10-29 07:47:42 26 4
gpt4 key购买 nike

我研究了 Ruby 类和实例方法之间的主要区别,我发现的主要区别是我们不需要创建该类的实例,我们可以直接在类名上直接调用该方法。

class Notifier 

def reminder_to_unconfirmed_user(user)
headers['X-SMTPAPI'] = '{"category": "confirmation_reminder"}'
@user = user
mail(:to => @user["email"], :subject => "confirmation instructions reminder")
end

end

所以,我在 Notifier 类中定义了实例方法 reminder_to_unconfirmed_user 来向未确认的用户发送电子邮件,当我运行 Notifier.reminder_to_unconfirmed_user(User.last ) 如果它是一个实例方法而不是类方法,它就会被调用。

最佳答案

要定义类方法,请在方法定义(或类名)中使用 self 关键字:

class Notifier
def self.this_is_a_class_method
end

def Notifier.this_a_class_method_too
end

def this_is_an_instance_method
end
end

在你的例子中,reminder_to_unconfirmed_user 应该被定义为一个类方法:

class Notifier 

def self.reminder_to_unconfirmed_user(user)
# ...
end

end

然后你可以像这样使用它:

Notifier.reminder_to_unconfirmed_user(User.last)

关于ruby-on-rails - Ruby on Rails 实例与类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33238208/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com