Имена моделей и пространства имен - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть модель с именем Admin, и я хотел бы создать пространство имен с тем же именем.Когда я делаю это, Admin is not a module поднимается.Есть ли способ, как указать маршрут или другой способ решить эту проблему?

Администратор - это модель Devise.

пространство имен в route.rb:

namespace :admin do
    resources :buildings
end

И контроллер controllers/admin/buildings_controller.rb

module Admin
  class BuildingsController < Admin::AdminController
    before_action :authenticate_admin!

1 Ответ

0 голосов
/ 07 декабря 2018

Проблема, с которой вы сталкиваетесь, связана не с маршрутом, а с Ruby.Модель Rails - это класс Ruby.Вы не можете иметь class и module с тем же именем и в том же контексте.

То, что вам нужно, это Новые многопользовательские модели Devise ?

В качестве альтернативы вы можете сохранить свои пользовательские контроллеры администрирования в другом пространстве имен (например, Administration) и направить /admin/buildings CRUD в свое пользовательское пространство имен:

scope path: "/admin", as: "admin", module: 'administration' do
  resources :buildings
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...