2015-10-20 71 views
0

我想弄清楚逻辑,所以当用户选择下拉选择时,它会使用该电子邮件地址作为默认from。例如,如果用户选择store1,应该从[email protected]发送,store2[email protected]来自ActionMailer的条件默认

class ApplicationMailer < ActionMailer::Base 
    default from: "[email protected]" 
    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

回答

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 
叫它