我试图找出逻辑,因此当用户选择下拉选项时,它会将该电子邮件地址用作默认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
表格中,我有列name
和email_address
。
答案 0 :(得分:0)
您将无法使用default
执行此操作 - default
适用于不想要自定义电子邮件的情况。
编写交付方法时,接受entry
或store
作为参数,并使用它在运行时选择from
地址。它看起来像
class ApplicationMailer < ActionMailer::Base
layout 'mailer'
def entry_email(entry)
mail(from: entry.store.email_address)
end
end
你会用
来称呼它ApplicationMailer.entry_email(entry).deliver