2011-08-14 55 views
1

我有一個電子郵件調度設置發送每日電子郵件,提供該網站對所有用戶更新,的ActionMailer實例變量問題Ruby on Rails的

然而,當我嘗試發送電子郵件,所有變量回來爲零,我假設因爲沒有明確定義。即沒有人用他們的電子郵件提交表格,點擊提交併觸發電子郵件,這只是每天向所有用戶發送的電子郵件,爲簡單起見,我們會說應該包含接收用戶的電子郵件地址。

 <%= @user.email %> 

在此先感謝您的幫助!

def newideas_email(user) 
    @user = user 
    mail(:to => user, :subject => "Here are the latest ideas from your team") 
    end 

和這裏的調度任務:

scheduler.every("30m") do 
    Account.all.each do |account| 
    account.users.each do |user| 
    Newideas.newideas_email(user.email).deliver 
    end 
    end 
    end 

和這裏的實際電子郵件代碼:

<% @user.account.ideas.each do |idea| %> 
    <li><%= idea.title %></li> 
    <% end %> 

再次感謝!

+0

您可以發佈您用於郵件程序的代碼嗎? –

+0

你能從你的郵件對象(派生自ActionMailer :: Base的那個)發佈代碼嗎?此外,調用my_mailer.deliver_xxx()的代碼行。我很難弄清楚缺少這個代碼是怎麼回事。 – ghayes

+0

我編輯了上面的代碼以包含所有相關的代碼。謝謝 –

回答

3

在您的預定代碼中,您將通過用戶的電子郵件地址傳遞給郵件程序Newideas.newideas_email(user.email)。你可能要做的是傳遞用戶對象本身Newideas.newideas_email(user),因爲你的視圖模板期望它是一個ActiveRecord