ActionMailer的条件默认值

时间:2015-10-20 14:29:19

标签: ruby ruby-on-rails-4 actionmailer

我试图找出逻辑,因此当用户选择下拉选项时,它会将该电子邮件地址用作默认from。例如,如果用户选择store1,则应该从test1@example.com发送,store2应该是test2@example.com等。

class ApplicationMailer < ActionMailer::Base
  default from: "test1@example.com"
  layout 'mailer'
end

这是用户用来选择商店的表单:

<%= form_for @entry do |f| %>
  <div class="form-group">
    <%= f.select :store, Store.all.map { |store| [store.name]  }, :selected => @entry.store %>
  </div>
<% end %>

stores表格中,我有列nameemail_address

1 个答案:

答案 0 :(得分:0)

您将无法使用default执行此操作 - default适用于想要自定义电子邮件的情况。

编写交付方法时,接受entrystore作为参数,并使用它在运行时选择from地址。它看起来像

class ApplicationMailer < ActionMailer::Base
  layout 'mailer'

  def entry_email(entry)
    mail(from: entry.store.email_address)
  end
end

你会用

来称呼它
ApplicationMailer.entry_email(entry).deliver