Бэкэнд-администрирование в Ruby on Rails
-
01-07-2019 - |
Вопрос
Я хотел бы создать очень быстрый и грязный административный сервер для приложения Ruby on Rails, к которому я подключился в последнюю минуту.Я рассмотрел activescaffold и оптимизированный и думаю, что они оба очень привлекательны и их должно быть легко запустить, но я не совсем понимаю, как настроить любой из них в качестве внутренней страницы администрирования.Похоже, они предназначены для работы как стандартные генераторы/скаффолды Ruby on Rails для создания видимых интерфейсов с соответствием имен модели-представления-контроллера-таблицы.
Как создать интерфейс admin_players, если player уже используется и вы хотите, насколько это возможно, не затрагивать связанные с ним файлы?
Показ, редактирование и индексирование исходного ресурса администратору недоступны.
Решение
Я думаю, что пространства имен - это решение вашей проблемы:
map.namespace :admin do |admin|
admin.resources :customers
end
Который будет создавать маршруты admin_customers
, new_admin_customers
, и т. д.
Затем внутри app/controller
каталог, вы можете иметь admin
каталог.Внутри вашего каталога администратора создайте контроллер администратора:
./script/generate rspec_controller admin/admin
class Admin::AdminController < ApplicationController
layout "admin"
before_filter :login_required
end
Затем создайте контроллер администратора клиентов:
./script/generate rspec_controller admin/customers
И сделайте это наследованием от вашего ApplicationController:
class Admin::CustomersController < Admin::AdminController
Это будет искать просмотры в app/views/admin/customers
и будет ожидать макет в app/views/layouts/admin.html.erb
.
Затем вы можете использовать любой плагин или код, который вам нравится, для администрирования, оптимизации, ActiveScaffold и всего, что лично мне нравится использовать. resourcecs_controller
, так как это сэкономит вам много времени, если вы используете ОТДЫХ стильной архитектуры, и если заставить себя пойти по этому пути, вы можете сэкономить много времени в другом месте.Хотя, если вы унаследовали приложение, это уже спорный вопрос.
Другие советы
Проверьте active_admin на https://github.com/gregbell/active_admin.
Я довольно широко использовал Streamlined.
Чтобы заставить Streamline работать, вы создаете свои собственные контроллеры - так что вы можете запускать его полностью отдельно от остальной части вашего приложения, и вы даже можете запускать его в отдельной папке «admin» и пространстве имен, которые можно защитить с помощью .
Вот контроллер Customers из недавнего приложения:
class CustomersController < ApplicationController
layout 'streamlined'
acts_as_streamlined
Streamlined.ui_for(Customer) do
exporters :csv
new_submit_button :ajax => false
default_order_options :order => "created_at desc"
list_columns :name, :email, :mobile, :comments, :action_required_yes_no
end
end
Использовать https://github.com/sferik/rails_admin.