ruby-on-rails - 邮件预览无法正常工作,因为没有路由匹配

标签 ruby-on-rails routes actionmailer

我的邮件程序名为 send_invoice_mailer.rb(它可以在开发和产品中使用)。

我希望能够使用邮件预览来预览 send_checkout_invoice 函数。

路线.rb:

scope "(:locale)", locale: /#{I18n.available_locales.join("|")}/ do
  #app routes
end

/spec/mailers/previews/send_invoice_preview.rb 和/test/mailers/previews/send_invoice_preview.rb (不确定哪一个是正确的,所以我符号链接(symbolic link)了该文件)

class SendInvoicePreview < ActionMailer::Preview
  
  def send_checkout_invoice
    #initializing foo
    SendInvoice.send_checkout_invoice(foo)
  end
end

当我访问: /rails/mailers/send_invoice/send_checkout_invoice我被重定向到/fr/rails/mailers/send_invoice/send_checkout_invoice出现此错误:

No route matches [GET] "/fr/rails/mailers/send_invoice/send_checkout_invoice"

编辑:rails 是 4.2,这是在开发中与乘客一起完成的。应用程序已从以前的 Rails 版本多次升级。

编辑2:/rails/mailers 也不起作用。是因为语言环境范围吗?

最佳答案

可以使用 Preview_path 选项配置邮件预览目录的位置,该选项默认为 test/mailers/previews:

尝试更新操作邮件预览的配置路径,如下所示:

config.action_mailer.preview_path = "#{Rails.root}/lib/mailer_previews"

如果测试目录不在生产环境中,则会失败。

检查此链接,这可能会有所帮助

https://richonrails.com/articles/action-mailer-previews-in-ruby-on-rails-4-1

关于ruby-on-rails - 邮件预览无法正常工作,因为没有路由匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44911339/

相关文章:

ios - swift turn-by-turn 映射 ios

ruby-on-rails - 如何构建一条包含 `#` 的路线?

ruby-on-rails - SASL LOGIN 认证失败 : Invalid authentication mechanism on Rails using Postfix and Dovecot on Ubuntu 12. 10

ruby-on-rails - 如何调用Errbit API?

ruby-on-rails - 允许在带有轮胎的 ElasticSearch 中过滤的术语不存在

javascript - 首先安装 Rails : Rake aborted no javascript runtime

ruby-on-rails - 在 shopee 中编辑电子邮件 View

ruby-on-rails - Rails 5 Controller 测试更改 - `Devise::TestHelpers` 已弃用,将从 Devise 中删除。

routes - laravel 抛出 MethodNotAllowedHttpException

nginx - Ruby On Rails : Mailer : Sidekiq - asset path not valid in email : Engineyard : Nginx : Passenger