Версия Rails 1.3.4 подтверждена

Я использую devise с проверкой на стороне клиента и установил подтверждаемый параметр.

Когда я регистрируюсь, письмо отправляется, но кажется, что контроллер не может увидеть, что учетная запись не подтверждена, и пытается войти.

Started GET "/" for 127.0.0.1 at 2011-05-24 14:41:47 +0200
  Processing by HomeController#index as HTML
Completed   in 156ms


Started GET "/users/sign_in" for 127.0.0.1 at 2011-05-24 14:41:47 +0200
  Processing by Devise::SessionsController#new as HTML
  SQL (3.5ms)   SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull
 FROM pg_attribute a LEFT JOIN pg_attrdef d
 ON a.attrelid = d.adrelid AND a.attnum = d.adnum
 WHERE a.attrelid = '"users"'::regclass
 AND a.attnum > 0 AND NOT a.attisdropped
 ORDER BY a.attnum

Rendered devise/shared/_links.erb (23.5ms)
Rendered devise/sessions/new.html.erb within layouts/application (92.2ms)
Completed 200 OK in 646ms (Views: 117.4ms | ActiveRecord: 3.5ms)

Любая идея, где искать?


person S Dufour    schedule 24.05.2011    source источник


Ответы (1)


В initializers/devise.rb есть конфигурация:

  # The time you want to give your user to confirm his account. During this time
  # he will be able to access your application without confirming. Default is 0.days
  # When confirm_within is zero, the user won't be able to sign in without confirming.
  # You can use this to let your user access some features of your application
  # without confirming the account, but blocking it after a certain period
  # (ie 2 days).
  config.confirm_within = 2.days

Вероятно, это причина, по которой он пытается войти после регистрации и входит в систему пользователя, если для него было установлено какое-то значение.

person amit_saxena    schedule 24.05.2011
comment
Я пытался принудительно установить его на 0, но у меня все еще есть проблема. Я не знаю, могу ли я поставить точку отладчика где-нибудь, чтобы увидеть, что происходит. - person S Dufour; 24.05.2011
comment
С какой проблемой вы столкнулись? Он пытается войти в систему и не может войти, потому что для подтверждения установлено значение 0 дней. Я полагаю, это поведение по умолчанию. Или вы хотите, чтобы он автоматически входил в систему, а пользователь мог подтвердить позже? - person amit_saxena; 24.05.2011
comment
Когда пользователь завершает подписку, devise пытается войти в систему, но терпит неудачу, поскольку электронная почта не подтверждена. Таким образом, пользователь не уведомлен о том, что ему нужно проверить свою электронную почту, и у него есть нерелевантное сообщение об ошибке на странице регистрации. Я бы предпочел, чтобы он был перенаправлен на определенную страницу после успешной регистрации, сказав ему проверить свою электронную почту. - person S Dufour; 24.05.2011
comment
Значение: пользователь перенаправляется, и он получает ошибку :unauthenticated, тогда как я бы предпочел ошибку :unconfirmed или конкретную веб-страницу. - person S Dufour; 24.05.2011
comment
Уведомление по умолчанию: Вы успешно зарегистрировались. Однако мы не смогли войти в систему, поскольку ваша учетная запись не подтверждена. Вы получаете сообщение об ошибке, вероятно, потому, что вы установили свой корень (в route.rb) на какую-то страницу, которая требует, чтобы пользователь вошел в систему. Он пытается перенаправить на эту страницу (по умолчанию перенаправляется на корень) и сообщение об ошибке отображается. - person amit_saxena; 25.05.2011
comment
Вы правы, я установил корень по умолчанию на страницу аутентификации. - person S Dufour; 25.05.2011
comment
Я думаю, что мне просто нужно было использовать это для перенаправления на определенную страницу. Спасибо за помощь. - person S Dufour; 25.05.2011
comment
Да, вы можете использовать это, или в вики devise есть ряд решений для настройки, связанной с перенаправлением: github.com/ Платформатек/разработка/вики - person amit_saxena; 25.05.2011