新的rails 4.1邮件程序预览操作未找到错误

时间:2014-06-09 02:35:29

标签: ruby-on-rails-4 actionmailer

Rails有607个未解决的问题......所以,我不是先把这个漏洞堵住,而是先尝试一下。我已升级到4.1并正在实施rails mailer预览。我尝试升级现有的邮件程序并添加测试/邮件程序/预览目录。当出现以下错误时,我尝试生成一个新的邮件程序。同样的错误。

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

导致此错误:

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

我尝试过搜索谷歌,文档,堆栈溢出,但没有任何问题可以解决这个错误。

任何人都有这种想法或有任何想法吗?

4 个答案:

答案 0 :(得分:58)

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

您可以将路径设置为您喜欢的任何路径:

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

答案 1 :(得分:7)

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

干杯!!

答案 2 :(得分:5)

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

答案 3 :(得分:3)

删除行

get '/:controller(/:action(/:id))'
get '/:controller(/:action(/:id))(.:format)'
来自routes.rb

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