【发布时间】:2020-12-15 12:40:21
【问题描述】:
为SendGrid 设置变形意味着我们可以对 Rails 的文件命名方案进行例外处理。我们可以将模型命名为SendGrid...,而不必将文件命名为send_grid_...。但是,它在此处引入了与依赖项相关的问题。我正在使用sendgrid-actionmailer gem,它使用模块名称ActionMailbox::Ingresses::Sendgrid 注册入口,但前面的首字母缩写词定义意味着查找需要SendGrid。
config/initializers/inflections.rb:
# frozen_string_literal: true
ActiveSupport::Inflector.inflections(:en) do |inflect|
...
inflect.acronym 'SendGrid'
end
在生产中运行时,我使用 sendgrid-actionmailer:
/app/vendor/bundle/ruby/2.7.0/gems/actionmailbox-6.0.3.2/app/controllers/action_mailbox/ingresses/sendgrid/inbound_emails_controller.rb:47:in `<module:ActionMailbox>': uninitialized constant ActionMailbox::Ingresses::Sendgrid (NameError)
Did you mean? ActionMailbox::Ingresses::SendGrid
SendGrid
A maintainer suggests this problem relates more to ActiveSupport than sendgrid-actionmailer,我同意。他建议对此的临时解决方案是删除首字母缩写词声明并改用 Sendgrid。有没有更永久的解决方案可以让我们保留首字母缩写词声明?
【问题讨论】:
-
ActionMailbox::Ingresses::Sendgrid的定义是什么? -
Rails 的
actionmailbox模块 - 代码是here。
标签: ruby-on-rails ruby