Проблема переменной экземпляра 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 %>

Спасибо еще раз!


person Steve Thomas    schedule 14.08.2011    source источник
comment
Можете ли вы опубликовать код, который вы используете для почтовой программы?   -  person Devin M    schedule 14.08.2011
comment
Можете ли вы опубликовать код из своего почтового объекта (того, который является производным от ActionMailer::Base)? Кроме того, строка кода, вызывающая my_mailer.deliver_xxx(). Трудно понять, что происходит, не имея этого кода.   -  person ghayes    schedule 14.08.2011
comment
Я отредактировал приведенное выше, чтобы включить весь связанный код. Спасибо   -  person Steve Thomas    schedule 14.08.2011
comment
Rails 3. Что-то из вышеперечисленного похоже на rails 2?   -  person Steve Thomas    schedule 14.08.2011


Ответы (1)


В запланированном коде вы передаете адрес электронной почты пользователя почтовой программе Newideas.newideas_email(user.email). Что вы, вероятно, хотели сделать, так это передать сам объект пользователя Newideas.newideas_email(user), потому что ваш шаблон представления ожидает, что он будет ActiveRecord.

person Lachlan Cotter    schedule 14.08.2011