【问题标题】:New rails 4.1 mailer preview action not found error未找到新的 rails 4.1 邮件程序预览操作错误
【发布时间】:2014-07-29 13:28:39
【问题描述】:

Rails 有 607 个未解决的问题...所以,与其堵住这个漏洞,我还不如先在这里尝试一下。我已经升级到 4.1 并且正在实施 rails 邮件预览。我尝试升级我现有的邮件程序并添加 tests/mailers/previews 目录。当这给出以下错误时,我尝试生成一个新的邮件。同样的错误。

 class NotifierPreview < ActionMailer::Preview
    def welcome
      Notifier.welcome(User.first)
    end
  end

导致此错误:

 The action 'notifier' could not be found for Rails::MailersController

我已经尝试搜索 google、文档、堆栈溢出,但没有任何东西可以避免这个错误。

有人经历过这个或有什么想法吗?

【问题讨论】:

    标签: ruby-on-rails-4 actionmailer


    【解决方案1】:

    默认预览路径为/test/mailers/previews,但rspec 会将其覆盖为/spec/mailers/previews

    你可以随意设置路径:

    config.action_mailer.preview_path = "#{Rails.root}/test/mailers/previews"
    

    【讨论】:

    • 我的英雄!邮件预览突然停止工作 - 只是得到一个空白/白页而不是索引。没有意识到 rspec 搞砸了我的邮件路径。
    【解决方案2】:

    这是因为您将UserMailerNotifierPreview 一起使用。将 NotifierPreview 更改为 UserMailerPreview,它将开始工作。查看示例实现https://github.com/RichIsOnRails/ActionMailerPreviewsExample 和教程。

    干杯!!

    【讨论】:

    • 我希望它是那么简单......但是,我的命名是正确的。
    • 你检查了示例 git repo 吗?它使用 Rails 4.1。
    • 原来问题(看起来)在我的路线文件中。我有两条路线“get '/:controller(/:action(/:id))', get '/:controller(/:action(/:id))(.:format)'” 显然已弃用.. .or 将很快。这是通过我提交的 rails issue 中的评论。当我删除这些路线时,我会遇到其他错误……至少现在我知道了根本原因。我正在使用您共享的链接来帮助解决问题。谢谢,马克西姆斯!
    【解决方案3】:

    删除行

    get '/:controller(/:action(/:id))'
    get '/:controller(/:action(/:id))(.:format)'
    

    来自您的routes.rb

    正如@hellion 在对先前答案的评论中所说,这是解决此问题的方法。

    【讨论】:

    【解决方案4】:

    如果您使用 rspec,请确保在开发环境中加载了 rspec-rails gem,否则 Rails 将在 /test 文件夹下查找预览,而不是 /spec。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-06
      • 2012-01-21
      相关资源
      最近更新 更多