2010-07-15 54 views
0

我有一個ActionMailer模型(通知程序)和一個郵件視圖。在我的控制器,我建立一個看起來像這樣的數組(access_data):ActionMailer模板中的關聯

access_data = [] 
users.each do |user| 
    access_data << {'subscriptions' => user.subscriptions, 'login' => user.login} 
end 

當我創建一個「正常」的觀點,我可以這樣做:

<% access_data['subscriptions'].each do |subscription| %> 
    <%= subscription.service.name %> 
<% end %> 

但是當我做在同我通知-的看法,我得到這個錯誤:

undefined method `service' for #<YAML::Object:0x1032bf3f0> 

這是因爲通告模型擴展的ActionMailer :: Base的,而不是ActiveRecord的::基地?

回答

0

ActionMailer :: Base與ActiveRecord :: Base不同。每個ActionMailer方法表示可以發送的不同郵件,它沒有任何關於數據庫的東西。

+0

但在視圖中,我應該能夠得到模型的關聯,或不? 「正常」視圖和郵件視圖之間的區別在哪裏? – 2010-07-15 12:04:17

+0

郵件程序視圖是關於電子郵件的正文,而不是您在網絡瀏覽器中看到的內容。至少,從控制器,您可以發送電子郵件,然後重定向一些<某些網頁>。 – 2010-07-15 13:07:04