ActionMailer 的条件默认值
Conditional default from ActionMailer
我正在尝试找出其中的逻辑,因此当用户 select 下拉列表 selection 时,它会使用该电子邮件地址作为默认地址 from
。例如,如果用户 selects store1
,它应该从 test1@example.com
发送,store2
应该是 test2@example.com
,等等
class ApplicationMailer < ActionMailer::Base
default from: "test1@example.com"
layout 'mailer'
end
这是用户用于 select 商店的表格:
<%= form_for @entry do |f| %>
<div class="form-group">
<%= f.select :store, Store.all.map { |store| [store.name] }, :selected => @entry.store %>
</div>
<% end %>
在 stores
table 中,我有列 name
和 email_address
。
您将无法使用 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
我正在尝试找出其中的逻辑,因此当用户 select 下拉列表 selection 时,它会使用该电子邮件地址作为默认地址 from
。例如,如果用户 selects store1
,它应该从 test1@example.com
发送,store2
应该是 test2@example.com
,等等
class ApplicationMailer < ActionMailer::Base
default from: "test1@example.com"
layout 'mailer'
end
这是用户用于 select 商店的表格:
<%= form_for @entry do |f| %>
<div class="form-group">
<%= f.select :store, Store.all.map { |store| [store.name] }, :selected => @entry.store %>
</div>
<% end %>
在 stores
table 中,我有列 name
和 email_address
。
您将无法使用 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