Administration dorsale dans Ruby on Rails
-
01-07-2019 - |
Question
Je souhaite créer un véritable backend administratif pour une application Ruby on Rails à laquelle j'ai été rattaché à la dernière minute. J'ai examiné ActiveCaffold et rationalisé et je pense qu'ils sont tous les deux très attrayants et qu'ils devraient être simples à utiliser, mais je ne comprends pas très bien comment configurer l'un ou l'autre comme page d'administration d'arrière-plan. Ils semblent conçus pour fonctionner comme des générateurs / échafaudages Ruby on Rails standard permettant de créer des frontaux visibles avec une correspondance de noms de modèle-vue-contrôleur-table-.
Comment créez-vous une interface admin_players lorsque les lecteurs sont déjà utilisés et que vous souhaitez éviter, dans la mesure du possible, d’affecter l’un de ses fichiers associés?
L’affichage, la modification et l’index de la ressource d’origine ne sont pas exploitables pour l’administrateur.
La solution
Je pense que les espaces de noms sont la solution au problème que vous avez ici:
map.namespace :admin do |admin|
admin.resources :customers
end
Ce qui créera des itinéraires clients_admin
, clients_nouveau_admin
, etc.
Ensuite, dans le répertoire app / controller
, vous pouvez créer un répertoire admin
. Dans votre répertoire admin, créez un contrôleur admin:
./script/generate rspec_controller admin/admin
class Admin::AdminController < ApplicationController
layout "admin"
before_filter :login_required
end
Créez ensuite un contrôleur clients admin:
./script/generate rspec_controller admin/customers
Et créez cet héritage depuis votre ApplicationController:
class Admin::CustomersController < Admin::AdminController
Ceci recherchera les vues dans app / views / admin / clients
.
et attendra une présentation dans app / views / layouts / admin.html.erb
.
Vous pouvez ensuite utiliser le plug-in ou le code de votre choix pour effectuer votre administration, rationaliser, ActiveScaffold, ou tout ce que j'aime personnellement utiliser resourcecs_controller
, car cela vous fait gagner beaucoup de temps si vous utilisez L'architecture de style REST peut vous faire gagner beaucoup de temps ailleurs. Bien que si vous avez hérité de l'application qui est un point discutable maintenant.
Autres conseils
Consultez Active_admin à l'adresse https://github.com/gregbell/active_admin .
J'ai beaucoup utilisé Streamlined.
Pour que Streamline fonctionne correctement, vous créez vos propres contrôleurs. Vous pouvez donc l'exécuter complètement en dehors du reste de votre application. Vous pouvez même l'exécuter dans un dossier "admin" séparé et un espace de noms pouvant être sécurisé avec .
Voici le contrôleur clients d'une application récente:
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
Utilisez https://github.com/sferik/rails_admin .