我的应用程序中有一个用户模型。现在我想将一些用户模型编码替换为模块用户下可能的employees.rb和customer.rb两类,以避免单个模型中的更多代码。我想在用户创建后访问customer.rb中的方法send_mail。
user.rb
after_create:send_msg_on_order
def send_msg_on_order
Users::Customer.send_mail
end
用户/ customer.rb
def send_mail
Mailer.send_mail_to_customer.deliver
end
我正在为Users :: Customer:Module error。
获取未定义的方法`send_mail'答案 0 :(得分:1)
您已将send_mail
方法定义为实例方法,但将其作为类方法调用。要么使它成为类方法,要么创建Customer
模型的实例并调用它。
使方法成为类方法:
def self.send_mail
Mailer.send_mail_to_customer.deliver
end
如果您希望将其保留为实例方法,请按以下方式调用它:
after_create:send_msg_on_order
def send_msg_on_order
Users::Customer.new.send_mail
end
HTH
答案 1 :(得分:0)
您也可以这样打电话
def send_msg_on_order
Customer.send_mail
end