ruby-on-rails - 我应该使用 YAML 文件还是数据库在 Rails 应用程序中存储我的成功/错误消息?
问题描述
在我的 Rails 应用程序中,执行一些代码后,我想向用户发送 Slack 消息以通知他们执行结果。我想为多个进程发送这些消息,简而言之,我需要在某个地方存储成功/错误的消息模板(它们只是短字符串,例如“嗨,我们已经成功完成 x!”,但是它们因每个过程而异)。
现在,我SlackMessage
在数据库中有一个模型,您可以从中检索消息内容。但是,我听说最好在yml
文件中管理这样的自定义消息,因为以后添加/编辑消息更容易(就像这样,即使这是针对语言环境的)。
这种情况的最佳实践是什么?如果不使用数据库,我很感激您能否提供有关如何操作的指针或链接(就使用yml
文件而言,我能找到的唯一材料是国际化)。
解决方案
为什么不使用I18n
Rails 中已经存在的模块?这非常适合存储消息,并让您能够使用将来需要的翻译。
获取消息很简单:
Slack.message(I18n.t(:slack_message, scope:'slack'))
在这种情况下,您需要这样的翻译文件:
en:
slack:
slack_message: This is the message you are going to select.
阅读有关 I18n 的更多信息:https ://guides.rubyonrails.org/i18n.html