У меня есть работа (запланированная на delayed_job
), которая отправляет электронное письмо, когда новый пользователь регистрируется в приложении. Это модель пользователя:
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
attr_accessible :email, :password, :password_confirmation, :remember_me, :country, :phone_number, :opt_in
def email=(email)
super
Delayed::Job.enqueue self
end
def perform
begin
UserMailer.welcome_email self
rescue => e
STDERR.puts "Cannot perform the mailer: #{e}"
end
end
end
Действие, которое отвечает за регистрацию нового пользователя:
def create
user = User.new({:email => params[:email],
:password => params[:password],
:password_confirmation => params[:password_confirmation],
:country => params[:country],
:opt_in => Boolean(params[:opt_in]),
:phone_number => params[:phone_number]})
if user.save(:validate => false)
redirect_to wrap_users_path
end
end
Когда пользователь регистрируется, я получаю следующий журнал:
Запущен POST "/ wrap_users" для
... в 2011-05-30 12:58:35 +0200 Обработка WrapUsersController # создать как HTML
Параметры:
{ "Электронная почта" => "хххх",
"Пароль" => "[FILTERED]",
"Password_confirmation" => "[FILTERED]",
"Phone_number" => "ххх",
"opt_in" => "true", "country" => "Франция"}
AREL (0.3ms) ВСТАВИТЬ В
"delayed_jobs" ("приоритет",
"попытки", "обработчик", "last_error",
"run_at", "locked_at", "failed_at",
"locked_by", "creation_at",
"updated_at") ЗНАЧЕНИЯ (0, 0, '---
! ruby / ActiveRecord: атрибуты пользователя:
электронная почта: хххх
encrypted_password:
$ 2a $ 10 $ DwHB / 5zSp38xdAAIkYriSuwIiLyKy2geU5kLmzjz2f1WsAuxpqyIW
reset_password_token:
reset_password_sent_at:
запомнить_создано_от: sign_in_count:
0 current_sign_in_at:
last_sign_in_at: current_sign_in_ip:
last_sign_in_ip: creation_at:
updated_at: страна: Франция opt_in:
истинный номер телефона: ххх ',
NULL, '2011-05-30 10: 58: 35.250464',
NULL, NULL, NULL, '2011-05-30
10: 58: 35.250560 ',' 2011-05-30
10: 58: 35.250560 ') AREL (2,1 мс)
INSERT INTO "users" ("email",
"Encrypted_password",
"Reset_password_token",
"Reset_password_sent_at",
"Remember_created_at",
"sign_in_count", "current_sign_in_at",
"Last_sign_in_at",
"Current_sign_in_ip",
"last_sign_in_ip", "creation_at",
"updated_at", "страна", "opt_in",
"phone_number") ЗНАЧЕНИЯ
( 'Ххх',
'$ 2a $ 10 $ DwHB / 5zSp38xdAAIkYriSuwIiLyKy2geU5kLmzjz2f1WsAuxpqyIW',
NULL, NULL, NULL, 0, NULL, NULL, NULL,
NULL, '2011-05-30 10: 58: 35.251788',
«2011-05-30 10: 58: 35.251788»,
'Франция', 't', 'xxx')
Перенаправлено на
Http: // ...: 3000 / wrap_users
Завершено 302 Найдено за 277 мс
Как видите, согласно журналу запись записывается в таблицу Delayed::Job
. Но на самом деле при подсчете количества записей в этой таблице (на rails console
в том же режиме разработки) я получаю 0.
Что происходит? В журнале не упоминалось ни одной проблемы, касающейся шага insert into delayed_jobs
.
Спасибо