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.

Était-ce utile?

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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top