【问题标题】:How can I solve this ActionMailer error with haml templates?如何使用 haml 模板解决此 ActionMailer 错误?
【发布时间】:2018-11-15 15:53:48
【问题描述】:

我想为我的邮件使用 HAML 语法。我的 React 应用只是一个 API,所以没有前端。

  • Rails 5.2.1
  • 红宝石 2.5.1
  • haml (~> 5.0.4)
  • haml-rails (~> 1.0.0)

奇怪的是,当我将邮件程序的视图从 *.html.erb 重命名为 *.html.haml 时,我会在尝试发送邮件时收到此错误消息。

51: from -e:1:in `<main>'
50: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
49: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
48: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/activesupport-5.2.1/lib/active_support/dependencies.rb:281:in `load'
47: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/activesupport-5.2.1/lib/active_support/dependencies.rb:253:in `load_dependency'
46: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/activesupport-5.2.1/lib/active_support/dependencies.rb:281:in `block in load'
45: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/activesupport-5.2.1/lib/active_support/dependencies.rb:281:in `load'
44: from /Users/steven/coding/mge/mge-finpowerment/bin/rails:11:in `<top (required)>'
43: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/activesupport-5.2.1/lib/active_support/dependencies.rb:287:in `require'
42: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/activesupport-5.2.1/lib/active_support/dependencies.rb:253:in `load_dependency'
41: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/activesupport-5.2.1/lib/active_support/dependencies.rb:287:in `block in require'
40: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/activesupport-5.2.1/lib/active_support/dependencies.rb:287:in `require'
39: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/railties-5.2.1/lib/rails/commands.rb:18:in `<top (required)>'
38: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/railties-5.2.1/lib/rails/command.rb:46:in `invoke'
37: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/railties-5.2.1/lib/rails/command/base.rb:65:in `perform'
36: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/thor-0.19.4/lib/thor.rb:369:in `dispatch'
35: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/thor-0.19.4/lib/thor/invocation.rb:126:in `invoke_command'
34: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/thor-0.19.4/lib/thor/command.rb:27:in `run'
33: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/railties-5.2.1/lib/rails/commands/console/console_command.rb:96:in `perform'
32: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/railties-5.2.1/lib/rails/commands/console/console_command.rb:19:in `start'
31: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/railties-5.2.1/lib/rails/commands/console/console_command.rb:64:in `start'
30: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/2.5.0/irb.rb:383:in `start'
29: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/2.5.0/irb.rb:427:in `run'
28: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/2.5.0/irb.rb:427:in `catch'
27: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/2.5.0/irb.rb:428:in `block in run'
26: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/2.5.0/irb.rb:487:in `eval_input'
25: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/2.5.0/irb/ruby-lex.rb:231:in `each_top_level_statement'
24: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/2.5.0/irb/ruby-lex.rb:231:in `catch'
23: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/2.5.0/irb/ruby-lex.rb:232:in `block in each_top_level_statement'
22: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/2.5.0/irb/ruby-lex.rb:232:in `loop'
21: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/2.5.0/irb/ruby-lex.rb:246:in `block (2 levels) in each_top_level_statement'
20: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/2.5.0/irb.rb:488:in `block in eval_input'
19: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/2.5.0/irb.rb:623:in `signal_status'
18: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/2.5.0/irb.rb:491:in `block (2 levels) in eval_input'
17: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/2.5.0/irb/context.rb:380:in `evaluate'
16: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/2.5.0/irb/workspace.rb:85:in `evaluate'
15: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/2.5.0/irb/workspace.rb:85:in `eval'
14: from (irb):2:in `irb_binding'
13: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/actionmailer-5.2.1/lib/action_mailer/message_delivery.rb:103:in `deliver_now!'
12: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/actionmailer-5.2.1/lib/action_mailer/rescuable.rb:17:in `handle_exceptions'
11: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/actionmailer-5.2.1/lib/action_mailer/message_delivery.rb:104:in `block in deliver_now!'
10: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/mail-2.7.0/lib/mail/message.rb:276:in `deliver!'
 9: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/letter_opener-1.6.0/lib/letter_opener/delivery_method.rb:24:in `deliver!'
 8: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/launchy-2.4.3/lib/launchy.rb:29:in `open'
 7: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/launchy-2.4.3/lib/launchy/applications/browser.rb:79:in `open'
 6: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/launchy-2.4.3/lib/launchy/application.rb:58:in `run'
 5: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/launchy-2.4.3/lib/launchy/detect/runner.rb:62:in `run'
 4: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/launchy-2.4.3/lib/launchy/detect/runner.rb:120:in `wet_run'
 3: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/launchy-2.4.3/lib/launchy/detect/runner.rb:120:in `fork'
 2: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/launchy-2.4.3/lib/launchy/detect/runner.rb:123:in 'block in wet_run'
 1: from /Users/steven/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/launchy-2.4.3/lib/launchy/detect/runner.rb:144:in 'exec_or_raise'
 /Users/steven/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/launchy-2.4.3/lib/launchy/detect/runner.rb:144:in `exec': No such file or directory - NONE (Errno::ENOENT)

有人提示在哪里看吗?

【问题讨论】:

  • 我很困惑,你说你想使用 HAML,然后你说当你将 HAML 视图更改为 ERB 时出现错误。此外,该错误看起来与视图无关。尝试创建电子邮件但不要发送它,在其上调用.body 而不是deliver_now!,它将呈现视图,您将知道错误实际上是呈现视图还是其他地方。
  • @arieljuod 感谢您指出这一点。我扭了两个。当我使用 haml 文件扩展名时出现错误。但是,当我使用 .body 时,邮件会正确呈现。
  • 它看起来像一个 letter_opener 问题,它告诉 launchy 在浏览器上打开电子邮件,但它找不到要打开的文件。我不确定可能是什么问题(尝试重新配置 letter_opener 并检查电子邮件是否正确保存在 tmp 文件夹中)。
  • @arieljuod 感谢您的提示。我正在调查。

标签: ruby-on-rails ruby-on-rails-5 haml


【解决方案1】:

您需要在~/.bashrc 中设置一个BROWSER 环境变量,例如(使用谷歌浏览器):

echo 'export BROWSER=google-chrome' >> ~/.bashrc

source ~/.bashrc

或者您可以使用(使用 Firefox)运行服务器:

BROWSER=firefox rails server

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-06-12
    • 2012-01-28
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    • 2018-12-06
    • 2013-11-23
    • 2015-06-01
    相关资源
    最近更新 更多