【问题标题】:ActionMailer can't access helperActionMailer 无法访问帮助程序
【发布时间】:2017-06-30 11:53:11
【问题描述】:

我构建了一个 ActionMailer,它运行良好。

现在我正在配置一个助手并尝试在我的contact_mailer.html.erb 中使用。 它不会引发错误,但邮件尚未发送。

在我的application_mailer.rb

class ApplicationMailer < ActionMailer::Base
  helper :application
  default from: 'Customer Service<service@example.com>'
  layout 'mailer'
end

我的contact_mailer.rb

class ContactMailer < ApplicationMailer
  def order_notice(order)
    @order = order
    mail(to: @order.email, subject: 'Your order has been placed')
  end
end

我的application_helper.rb 如下所示:

module ApplicationHelper

  def item_price_in_euro(price)
    @ratio_id = session[:ratio]
    @money_ratio = MoneyRatio.find(@ratio_id).ratio
    @eur_ratio = MoneyRatio.find(@ratio_id = 2).ratio

    ((price/@money_ratio)*@eur_ratio).to_i
  end

end

我在其他常规视图模板中尝试了item_price_in_euro(price) 的方法,它可以工作。但是当我在contact_mailer.html.erb 中使用时,什么也没发生。这是我的contact_mailer.html.erb

<% @order.product_items.each do |item| %>
  <%= item_price_in_euro(item.price) %> #<%= item.price %> works well.
<% end %>

谁能告诉我我的代码有什么问题? 谢谢。

【问题讨论】:

    标签: ruby-on-rails actionmailer helper


    【解决方案1】:

    将此添加到您的邮件文件中,它应该会有所帮助。

    add_template_helper ApplicationHelper
    

    【讨论】:

    • 我试过你提供的方法,但对我不起作用。我认为问题可能是我的辅助方法,我正在尝试解决它。​​
    猜你喜欢
    • 2011-09-08
    • 1970-01-01
    • 1970-01-01
    • 2017-07-15
    • 2018-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-30
    相关资源
    最近更新 更多