Administracja backendem w Ruby on Rails

Chciałbym zbudować naprawdę szybki i brudny backend administracyjny dla aplikacji Ruby on Rails, do której zostałem dołączony w ostatniej chwili. Spojrzałem na activescaffold i usprawnione i uważam, że oba są bardzo atrakcyjne i powinny być proste do uruchomienia, ale nie bardzo rozumiem, jak skonfigurować jedną z nich jako stronę administracyjną zaplecza. Wydają się być zaprojektowane do pracy jak standardowe Generatory Ruby on Rails / rusztowania do tworzenia widocznych frontów z model-widok-kontroler-nazwa tabeli.

Jak utworzyć interfejs admin_players, gdy gracze są już w użyciu i chcesz uniknąć, w miarę możliwości, wpływu na którykolwiek z powiązanych plików?

Pokaż, Edytuj i indeks oryginalnego zasobu nie są używane przez administratora.

Author: Peter Mortensen, 2008-09-20

4 answers

Myślę, że przestrzenie nazw są rozwiązaniem problemu, który masz tutaj:

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

Który utworzy trasy admin_customers, new_admin_customers, itd.

Następnie wewnątrz katalogu app/controller możesz mieć katalog admin. W katalogu administratora Utwórz kontroler administratora:

./script/generate rspec_controller admin/admin

class Admin::AdminController < ApplicationController

  layout "admin"
  before_filter :login_required
end

Następnie utwórz kontroler admin customers:

./script/generate rspec_controller admin/customers

I zrób to z kontrolera aplikacji:

class Admin::CustomersController < Admin::AdminController

To będzie szukać widoków w app/views/admin/customers i będzie oczekiwać układu w app/views/layouts/admin.html.erb.

Możesz następnie użyć dowolnej wtyczki lub kodu, który chcesz faktycznie wykonywać swoją administrację, usprawnić, ActiveScaffold, cokolwiek osobiście lubię używać resourcecs_controller, ponieważ oszczędza to dużo czasu, jeśli używasz REST Architektura stylu, a zmuszanie się do tego może zaoszczędzić dużo czasu gdzie indziej. Chociaż jeśli odziedziczyłeś aplikację, to jest to kwestia sporna.

 53
Author: Laurie Young,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-20 06:53:09
 6
Author: phoet,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-20 07:13:42

Używałem Streamlined dość szeroko.

Aby usprawnić pracę, tworzysz własne Kontrolery - dzięki czemu możesz uruchomić go całkowicie niezależnie od reszty aplikacji, a nawet uruchomić go w oddzielnym folderze "admin" i przestrzeni nazw, które można zabezpieczyć za pomocą .

Oto Kontroler klientów z najnowszej aplikacji:

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
 5
Author: Toby Hede,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-20 09:43:46
 1
Author: rafamvc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-02-09 04:10:14