Domanda

Vorrei creare un backend amministrativo rapido e sporco per un'applicazione Ruby on Rails a cui sono stato assegnato all'ultimo minuto. Ho esaminato attivamente e ottimizzato e penso che siano entrambi molto interessanti e dovrebbero essere semplici da avviare, ma non capisco bene come impostare uno come pagina di amministrazione del back-end. Sembrano progettati per funzionare come generatori / scaffold standard di Ruby on Rails per la creazione di front-end visibili con corrispondenza del nome tabella modello-controller-tabella.

Come si crea un'interfaccia admin_players quando i giocatori sono già in uso e si desidera evitare, per quanto possibile, di influire su uno dei suoi file correlati?

Lo spettacolo, la modifica e l'indice della risorsa originale non sono utilizzabili dall'amministratore.

È stato utile?

Soluzione

Penso che i namespace siano la soluzione al problema che hai qui:

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

Che creerà percorsi admin_customers , new_admin_customers , ecc.

Quindi all'interno della directory app / controller puoi avere una directory admin . All'interno della tua directory di amministrazione, crea un controller di amministrazione:

./script/generate rspec_controller admin/admin

class Admin::AdminController < ApplicationController

  layout "admin"
  before_filter :login_required
end

Quindi crea un controller clienti amministratore:

./script/generate rspec_controller admin/customers

E rendilo ereditato dal tuo ApplicationController:

class Admin::CustomersController < Admin::AdminController

Questo cercherà le viste in app / views / admin / customers e si aspetterà un layout in app / views / layouts / admin.html.erb .

Puoi quindi utilizzare qualsiasi plug-in o codice che ti piace per fare effettivamente la tua amministrazione, ottimizzare, ActiveScaffold, qualunque cosa personalmente mi piace usare resourcecs_controller , poiché ti fa risparmiare molto tempo se usi un REST e forzarti lungo quel percorso può farti risparmiare molto altrove. Tuttavia, se hai ereditato l'applicazione, questo è un punto controverso ormai.

Altri suggerimenti

Dai un'occhiata a active_admin su https://github.com/gregbell/active_admin .

Ho usato Streamlined abbastanza ampiamente.

Per far funzionare Streamline crei i tuoi controller - in modo da poterlo effettivamente eseguire completamente separato dal resto dell'applicazione e puoi persino eseguirlo in una cartella 'admin' separata e in uno spazio dei nomi che può essere protetto con .

Ecco il controller Clienti di un'app recente:

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top