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
我尝试过搜索谷歌,文档,堆栈溢出,但没有任何问题可以解决这个错误。
任何人都有这种想法或有任何想法吗?
答案 0 :(得分:58)
默认预览路径为/test/mailers/previews
,但rspec会将此覆盖为/spec/mailers/previews
您可以将路径设置为您喜欢的任何路径:
config.action_mailer.preview_path = "#{Rails.root}/test/mailers/previews"
答案 1 :(得分:7)
这是因为您将UserMailer
与NotifierPreview
一起使用。将 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在对前一个答案的评论中所说,这是解决这个问题的方法。