Я в растерянности здесь. У меня есть три прицела Devise (бобовые, овощи и фрукты)
У меня есть одна пользовательская таблица, на которую ссылаются таблицы бобовых, фруктов и овощей:
- У пользователя есть один боб, фрукты и овощи
- Боб, фрукты и овощи принадлежат пользователю
Я могу нормально выйти из системы с 2 из 3 областей, но есть одна область (плод), где я выхожу из системы, и мой пользователь удаляется из базы данных. Я получаю это сообщение об ошибке после выхода из системы.
перевод отсутствует: en.devise.sessions.fruit.destroyed
Я выхожу, используя следующий код:
link_to "Logout", destroy_fruit_session_path, :method => "delete"
Вот вывод в логах:
Начато УДАЛЕНИЕ "/ fruits / logout" для 127.0.0.1 в 2012-03-11 21:43:58 -0400
Обработка Fruits :: SessionsController # уничтожить как HTML
Параметры: {"authenticity_token" => "2MwwcPF4NTWUUXDXiAh + v0B85CPNeUrW + R7S78FWo9E ="}
Пользовательская нагрузка (0,8 мс) ВЫБЕРИТЕ "users". * FROM "users" WHERE "users". "Id" = 335 LIMIT 1
(0,2 мс) НАЧАТЬ
SQL (0,6 мс) DELETE FROM "users" ГДЕ "users". "Id" = $ 1 [["id", 335]]
(1.3ms) COMMIT
Перенаправлено на http://localhost:3000/fruit/login
Тьфу! Я чувствую себя так глупо !!! Я понял свою проблему, и это довольно смущает ...
Вместо переопределения моего SessionsController с помощью Devises's SessionController я случайно переопределил его с помощью контроллера регистраций, который удаляет пользователя при уничтожении.
у меня было
#incorrect!!!
class Fruits::SessionsController < Devise::RegistrationsController
вместо
#correct...
class Fruits::SessionsController < Devise::SessionsController