2010-07-15 6 views
0

J'ai un modèle ActionMailer (Notifier) ​​et une vue pour le courrier. Dans mon contrôleur je construis un tableau (access_data) qui ressemble à ceci:Associations dans le modèle ActionMailer

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

Lorsque je crée une vue « normale », je peux le faire:

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

Mais quand je fais la même chose dans mon notificateur-View, je reçois cette erreur:

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

Est-ce parce que le notificateur modèle étend ActionMailer :: base et non ActiveRecord :: base? ActionMailer :: Base est différent d'ActiveRecord :: Base.

Répondre

0

chaque méthode ActionMailer représente un message différent qui peut être envoyé, il n'a rien à propos de la DB.

+0

Mais dans la vue je devrais pouvoir obtenir les associations de modèles, ou pas? Où est la différence entre les vues "normales" et les vues de publipostage? –

+0

Les vues de l'expéditeur concernent le corps de l'e-mail, pas ce que vous voyez dans le navigateur Web. Au moins, à partir du contrôleur, vous pouvez envoyer l'e-mail, puis rediriger certaines . –