У меня есть действие межстраничного контроллера, которое перенаправляет администраторов на основе их атрибутов роли. В зависимости от типов ролей админы будут направлены на одно из 4 действий в одном контроллере (или на действие catch). Это прекрасно работает, потому что в каждом случае каждое действие имеет только один вид. Но я хочу разделить представления на 10 разных страниц, и я не уверен, как структурировать контроллеры.Реструктуризация контроллера
Каждый из 4-х корпусов будет иметь одинаковые 10 действий, если они будут разделены на разные контроллеры, и информация будет отличаться, количество информации будет различаться в зависимости от роли, и такие переменные, как переменные, будут немного отличаться.
Должен ли я переместить каждый из своих контроллеров и просто использовать индекс панели #, чтобы направить их туда? Должен ли я запускать rails g controller dashboard/free
и т. Д., Чтобы добавить 4 контрольных панели в свои собственные подпапки или есть более мудрый способ справиться с этим в архитектуре?
Маршруты
match "/dashboard/index" => 'dashboard#index'
match "/dashboard/free" => 'dashboard#free', :as => :dashboard_free
match "/dashboard/standard" => 'dashboard#standard', :as => :dashboard_standard
match "/dashboard/premium" => 'dashboard#premium', :as => :dashboard_premium
match "/dashboard/super" => 'dashboard#super', :as => :dashboard_super
Панель управления делает переадресацию
def index
path = case current_admin.role
when 'free'
dashboard_free_path
when 'standard'
dashboard_standard_path
when 'premium'
dashboard_premium_path
when 'super'
dashboard_super_path
else
no_access_path
end
redirect_to path
end