我经常想向我的应用程序的用户发送消息。
我在考虑使用像这样的无表格模型:
class Dispatcher
def any_reason_to_send_message?
if condition_met
self.send
end
end
def send
# do the sending
end
end
我应该编写我想要完成的实例方法(如上所述)还是类方法?或者我应该将这种逻辑放在一个完全不同的地方(例如module
)?
答案 0 :(得分:1)
调度程序是发送消息的东西,而不是消息本身。不知道您的应用程序中是否确实存在调度程序。我会做一个模型消息。消息#send_message将是一个完全合理的方法。我会将Message设置为保存在表中的普通模型,因为能够回顾并查看何时以及向谁发送消息是很有价值的。
现在,如果你确实有一堆发送消息的代码 - 一个Dispatcher - 并且想知道把它放在哪里,这就是我要做的:
现在你有了一个放置新类的地方:一个服务,它将你的应用程序连接到外部。你的dispatcher.rb可以进去。我喜欢制作服务单例,以便在测试中更容易替换。 (是的,我知道单身人士在打字语言方面是邪恶的,但是他们很容易在Ruby中使用,所以这不是一个问题。)
您可以使用Dispatcher#send_message(message)实例方法,该方法使用所需的任何基础技术发送给定消息,以及Message {send_message实例方法,它只执行Dispatcher.instance.send_message self
。
请注意,Ruby对象已经有一个实例方法send
,所以我选择send_message
。