Какой лучший способ деактивировать учетную запись пользователя с ActiveRecord? - PullRequest
0 голосов
/ 30 января 2012

У меня большая проблема, и мне нужна ваша помощь с возможностью отключить учетную запись пользователя с несколькими зависимостями.

Я считаю, что в этом нет магии, но давайте посмотрим, что можно сделать:

У меня есть модель с именем User::Account со всеми зависимостями (has_manies, has_ones ...), но эти зависимости используются во всей системе, и все работает хорошо только при наличии или отсутствии этих записей. Нечего определять, когда эти зависимости активны или неактивны.

Но мне нужно, чтобы, когда модель User::Account была определена как неактивная (например, через столбец в БД), все эти зависимости также отключались, как если бы их не было, поэтому мне не нужно менять вся работа системы. Или менее болезненный способ сделать это.

Предложения

Спасибо

1 Ответ

2 голосов
/ 30 января 2012

Не зная подробностей, сложно дать точный совет, но я бы посоветовал вам, вероятно, before_filter.

Что-то в этом роде.

class ApplicationController

  private

  def user_must_be_active!
    if !@user.active?
      flash[:error] = "User Account is not active"
      redirect_to user_profile_path
    end
  end

end

Таким образом, в любом контроллере, для которого пользователь должен быть активен, мы можем сказать

class SomeController < ApplicationController
  before_filter :user_must_be_active!
end

Или, возможно, есть только некоторые действия, которые нас интересуют

class SomeOtherController < ApplicationController
  before_filter :user_must_be_active!, :only => :some_action
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...