У меня есть приложение Rails 3.2.x с помощью Devise.Предотвращение удаления пользователя в Ruby On Rails и разработка приложения
В соответствии со стандартной функцией разработки пользователь может удалить свою учетную запись (есть кнопка, чтобы щелкнуть по экрану смены пароля).
Я хочу, чтобы пользователь не удалял свою учетную запись, если он совершил предыдущие транзакции в системе.
Так что я сделал следующее в модели пользователя
before_destroy do
# Only delete if no financial transactions exist
return false if Trxhistory.where(:user_id=>self.id).select(:id).count() != 0
end
Он работает, пользователь будет удален, если никаких операций не существует, и пользователь не удаляется, если транзакция не существует. НО: если пользователь не будет удален, на экране по-прежнему отображается сообщение об успешном удалении, а не сообщение об ошибке.
Можете ли вы показать код контроллера? – Bob
Я использую стандартный Devise, я не перезаписал их контроллер. – KKK
Я думаю, вы должны сделать это, чтобы обработать исключение и показать сообщение об ошибке. – Bob