2012-09-03 16 views
7

Büyük bir üretim uygulaması için bir ActiveAdmin uygulamasında çalışıyorum. Ben şu anda iki activeadmin "varlık" için aynı modeli kullanmaya çalışıyorum. YaniAynı modeli iki etkin yönetici sınıfında kullanın

, ben

class Person < ActiveRecord::Base 

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

end 

Ben

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 

gibi bir şey yapabilirim olduğunu varsayalım (burada biraz ben ne yapmak istediğinizi açıklamak için sözdizimi uyduruyorum.)

İki tür kişi, menü öğeleri ve ActiveAdmin.register bloğunda tanımlanan farklı CRUD arabirimleri olarak görünecektir. Aynı temel modele sahip olacaklardı.

+0

Çözümünüzü denediniz mi? – Fivell

+0

Kodunuzu çalıştırırsanız ne olur? – monteirobrena

+0

Kullanıyorum: aşağıdaki gibi bir seçenek olarak: ActiveAdmin.register Kişi,: as => "Sıradan İnsanlar" Bu, benim için yerel olarak çalışır ancak bazen her iki bildirim de çakışır ve yollar yanlış denetleyiciye yeniden yönlendirilir. Başlatma sürecinin nerde gerçekleştiğini takip edemedim. – polmiro

cevap

4

Aktif Yönetici modeli Kodu: rotalara Şimdi

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 

:

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

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

yukarıdaki değişikliklerle deneyin. Umarım bu sizin sorunlarınızı çözer. Teşekkürler.

+0

@all Merhaba, bu% 100 çalışıyor, teşekkürler –

+0

bilmek çok güzel, bu yardım ettiğini:) – Swati

İlgili konular