Итак, мой вопрос: как бы вы реализовали свои рукописные помощники, основываясь на роли текущего пользователя .
Было бы эффективным изменить поведение во время запроса? например Помощник каким-то образом выясняет роль пользователя и включает соответствующий SubModule?
module ApplicationHelper
module LoggedInHelper
# Some functions
end
module GuestHelper
# The Same functions
end
# If User is Guest then include GuestHelper
# If User is LoggedIn then include LoggedInHelper
end
Эффективно ли это так? это путь рельсов ? У меня есть целая куча функций, которые действуют так, и я не хочу заключать каждую из них в оператор if
def menu_actions
if current_user.nil?
# User is guest
{ "Log in" => link_to "Login", "/login" }
else
# User is Logged In
{ "Log out" => link_to "Logout", "/logout" }
end
end
Спасибо за ваше время и мысли.