Мои участники приложения rails могут иметь одну из двух разных ролей: vip_lite и vip.Они могут подписаться на план продления их авторизации.
У нас также есть четыре типа плана: vip_lite / помесячно, vip_lite / год, vip / месяц, vip / год.
Пользователь vip может подписаться на один из четырех планов, как и vip_lite.Участник с разными ролями и разными планами может видеть разные кнопки на странице плана (например, vip_lite и подписывающийся vip_lite / ежемесячный участник может видеть кнопку «обновить» на странице плана vip).
см. Следующий пример кода: (в настоящее время пишитев помощнике)
def plan_action_button(user)
if user.vip? && user.subscribing_plan?(:vip_lite, :monthly)
'button_a'
elsif user.vip? && user.subscribing_plan?(:vip_lite, :yearly)
'button_b'
elsif user.vip? && user.subscribing_plan?(:vip, :monthly)
'button_c'
elsif user.vip? && user.subscribing_plan?(:vip, :monthly)
'button_d'
elsif user.vip_lite? && user.subscribing_plan?(:vip, :monthly)
'button_e'
elsif user.vip_lite? && user.subscribing_plan?(:vip, :yearly)
'button_e'
... and so on...
end
end
Поэтому мне приходится иметь дело с 2 * 4 = 8 условиями для каждой кнопки на этих страницах.Есть ли в рельсах хороший образец для решения такого случая?Спасибо