【发布时间】:2021-09-23 01:55:28
【问题描述】:
我正在编写一个 gem,它将处理模型的所有类型的通知(短信、移动和浏览器通知)
在 app 目录下的 rails 项目中创建了新文件夹 'notifiers',其中包含类似文件
app/notifiers/user_notifier.rb
class UserNotifier < ApplicationNotifier
def send_reminder
{
type: 'sms',
content: 'hi everyone',
recipients: [12134343,2342322,3434343]
}
end
end
这个 user_notifier 文件应该针对 User 模型。表示此方法 send_reminder 应该可用于 User 的实例/对象
User.last.send_reminder
所以,问题是
- 如何将通知程序文件夹的文件制作为特定于模型的文件(user.rb 模型文件在通知程序文件夹中有 user_notifier.rb 文件)
- 这个文件 user_notifier.rb 方法如何用于用户模型
这对于关注点和命名空间是可能的,但这会产生混乱的代码
【问题讨论】:
-
嗨@max,请看一下我已经提出的问题,关注点和命名空间(包括模型中)是可能的。但我想这样做,就像 rails 表现它自己的 MVC 模式一样。对于一个模型,不需要编写任何与该模型对应的控制器的配置。谢谢
-
您可以使用命令
rails runner "UserNotifier.new"来检查UserNotifier是否加载。如果您遇到错误,能否将rails runner "puts ActiveSupport::Dependencies.autoload_paths"的结果发给我并告诉我您使用的是哪个版本的 Rails?
标签: ruby-on-rails ruby rubygems loading subdirectory