27 votes

Administration backend en Ruby on Rails

J'aimerais construire un backend administratif rapide et sale pour une application Ruby on Rails à laquelle j'ai été rattaché à la dernière minute. J'ai regardé activescaffold et streamlined et je pense qu'ils sont tous les deux très attrayants et qu'ils devraient être simples à faire fonctionner, mais je ne comprends pas vraiment comment configurer l'un ou l'autre en tant que page d'administration backend. Ils semblent conçus pour fonctionner comme des générateurs/scaffolds Ruby on Rails standard pour créer des frontaux visibles avec une correspondance modèle-vue-contrôleur-table.

Comment créer une interface admin_players lorsque players est déjà utilisé et que vous voulez éviter, autant que possible, d'affecter l'un de ses fichiers connexes ?

L'affichage, l'édition et l'index de la ressource originale ne sont pas utilisables par l'administrateur.

53voto

Laurie Young Points 37065

Je pense que les espaces de noms sont la solution au problème que vous rencontrez ici :

map.namespace :admin do |admin|
    admin.resources :customers
end

Ce qui créera des routes admin_customers , new_admin_customers etc.

Ensuite, à l'intérieur de la app/controller vous pouvez avoir un admin répertoire. Dans votre répertoire d'administration, créez un contrôleur d'administration :

./script/generate rspec_controller admin/admin

class Admin::AdminController < ApplicationController

  layout "admin"
  before_filter :login_required
end

Ensuite, créez un contrôleur clients admin :

./script/generate rspec_controller admin/customers

Et faites cet ajout à partir de votre ApplicationController :

class Admin::CustomersController < Admin::AdminController

Ceci recherchera les vues dans app/views/admin/customers et attendra une mise en page dans app/views/layouts/admin.html.erb .

Vous pouvez ensuite utiliser le plugin ou le code de votre choix pour effectuer l'administration, streamline, ActiveScaffold, tout ce que j'aime utiliser personnellement. resourcecs_controller car vous gagnerez beaucoup de temps si vous utilisez un système de gestion de la qualité. REST et vous forcer à emprunter cette voie peut vous faire gagner beaucoup de temps ailleurs. Bien que si vous avez hérité de l'application, c'est un point discutable maintenant.

6voto

phoet Points 12124

Jetez un coup d'œil à Active_admin à https://github.com/gregbell/active_admin .

5voto

Toby Hede Points 22128

J'ai utilisé Streamlined de manière assez intensive.

Pour faire fonctionner Streamline, vous devez créer vos propres contrôleurs, ce qui vous permet de l'exécuter de manière complètement indépendante du reste de votre application. Vous pouvez même l'exécuter dans un dossier et un espace de noms "admin" distincts, qui peuvent être sécurisés à l'aide de la commande .

Voici le contrôleur des 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

1voto

rafamvc Points 1916

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X