2015-10-20 76 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 
叫它