Локаль не работает при вызове из грабли - PullRequest
2 голосов
/ 01 декабря 2010

У меня есть приложение Rails (2.3.8), в котором я без проблем отправляю электронные письма с помощью ActionMailer с моих контроллеров.

Однако я создал задачу rake, которая будет вызываться из Cronjob (вHeroku).Когда эти письма отправляются, в моих датах не происходит никаких преобразований локали.

Я гуглил, чтобы найти какое-либо решение, но не смог.

Кто-нибудь может мне помочь?

Спасибо.

Вот код:

cron.rake:

desc 'This task is called by the Heroku cron add-on'  
task :cron => :environment do  
puts 'Sending diary...'  
hollydays = [6,0] #weekend    
unless hollydays.member?(Time.zone.now.wday) #if is NOT a weekend   
 User.all.each do |user|  
   user.deliver_task_diary
 end  
end  
puts 'done.'  
end  

метод пользовательской модели:

def deliver_task_diary
  TaskMailer.deliver_task_diary(self)
end

метод в модели TaskMailer:

def task_diary(user)
  next_five_tasks = user.next_five_tasks
  last_five_tasks = user.last_five_tasks

  recipients "#{user.name} <#{user.email}>"
  from       "My site <no_reply@mysite.com>"
  subject    "Your daily tasks."
  sent_on    Time.zone.now
  body       :user => user, :next_five_tasks => next_five_tasks, :last_five_tasks => last_five_tasks

end

часть моего шаблона электронной почты, которая не соответствует локали:

<%=l task.estimated_delivery_date, :format => :short %>

1 Ответ

1 голос
/ 03 декабря 2010

решаемая.

Я не знаю, лучший ли это способ, но я только что объявил локаль в самом начале html-шаблона электронной почты:

<% I18n.locale = "pt-BR" %>
...