Как я должен рефакторинг и извлечь эти методы в модели жира пользователя в рельсах? - PullRequest
0 голосов
/ 22 мая 2018

В настоящее время я занимаюсь рефакторингом модели User с более чем 800 строками кода (еще несколько сотен были добавлены через миксины).В настоящее время в этой модели довольно много методов, подобных приведенным ниже, которые просто используются для определения типа пользователя на основе определенных критериев.

def is_a_manager?
  # logic to determine manager
end

def is_a_teacher?
  # logic to determine teacher
end

def is_a_parent?
  # logic to determine parent
end

def is_a_student?
  # logic to determine student
end

def is_a_coach?
  # logic to determine coach
end

def is_a_employee?
  # logic to determine employee
end

Каков наилучший способ рефакторинга этого кода?Должен ли я просто поставить его в беспокойство и включить его в класс?Или я должен извлечь все эти методы в отдельный класс, такой как UserIdentifier.new(user).is_teacher??Или этот вид рефактора совершенно не нужен?

1 Ответ

0 голосов
/ 22 мая 2018

Вы можете использовать сухую концепцию для проверки типа:

def method_name(user_type)
  //logic example
  type == user_type
end

метод вызова, например:

User.method_name("Teacher")

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...