2012-09-03 2 views
7

Sto lavorando a un'app ActiveAdmin per un'applicazione di produzione di grandi dimensioni. Attualmente sto cercando di utilizzare lo stesso modello per due "entità" activeadmin.Utilizzare lo stesso modello in due classi di admin attive

Quindi, dire che ho

class Person < ActiveRecord::Base 

    scope :special, where(:is_special => true) 
    scope :ordinary, where(:is_special => false) 

end 

Posso fare qualcosa di simile

ActiveAdmin.register Person, :name => "Special People" do 

    # columns, filters for special people 

    controller do 
    def scoped_collection 
     Person.special 
    end 
    end 

end 

ActiveAdmin.register Person, :name => "Ordinary People" do 

    # columns, filters for ordinary people 

    controller do 
    def scoped_collection 
     Person.ordinary 
    end 
    end 

end 

(sto facendo la sintassi un po 'qui per spiegare quello che voglio fare.)

I due tipi di persone apparirebbero come voci di menu e diverse interfacce CRUD come definite nel blocco ActiveAdmin.register. Avrebbero solo lo stesso modello di base.

+0

hai provato la soluzione? – Fivell

+0

Cosa succede se si esegue il codice? – monteirobrena

+0

Uso: come opzione: ActiveAdmin.register Persona,: come => "Persone normali" Questo funziona per me localmente ma a volte in remoto entrambe le dichiarazioni si scontrano e le rotte reindirizzano al controller sbagliato. Non sono stato in grado di rintracciare dove nel processo di inizializzazione questo sta accadendo però. – polmiro

risposta

4

attivo Codice modello di amministrazione:

ActiveAdmin.register Person, as: "Special People" do 
     scope :Special, default: true do |person| 
     person = Person.special 
     end 

     controller do 
     def scoped_collection 
      Person.special 
     end 
     end 
    end 

    ActiveAdmin.register Person, as: "Ordinary People" do 
     scope :Ordinary, default: true do |person| 
     person = Person.ordinary 
     end 

     controller do 
     def scoped_collection 
      Person.ordinary 
     end 
     end 
    end 

Ora, in percorsi:

match '/admin/special_people/scoped_collection/:id' => 'admin/special_people#scoped_collection' 

match '/admin/ordinary_people/scoped_collection/:id' => 'admin/ordinary_people#scoped_collection' 

Prova con i cambiamenti di cui sopra. Spero che questo risolva i tuoi problemi. Grazie.

+0

Hi @all, questo sta lavorando al 100%, grazie –

+0

Felice di sapere, che ha contribuito a:) – Swati