2013-10-23 25 views
7

Używam rails_admin w mojej aplikacji. Mam pewne zakresy na moich modeli, w następującym przykładzie:Zakresy jako filtry w rails_admin

class User < ActiveRecord::Base 

    scope :unconfirmed, where('confirmed_at IS NULL') 

end 

jest to możliwe w rails_admin aby uzyskać dostęp do tych zakresem jako filtr? Jak możesz w aktywnym administratorze. Jak dodanie przycisku gdzieś w sekcji użytkowników.

Dzięki

+5

Co takiego chcesz zrobić? Tak właśnie to robisz – MZaragoza

Odpowiedz

2

udało mi się to zrobić z powodzeniem dodając akcję niestandardową rails_admin.

Więcej szczegółów: https://github.com/sferik/rails_admin/wiki/Custom-action

Na przykład:

# in lib/rails_admin/unconfirmed.rb 

require 'rails_admin/config/actions' 
require 'rails_admin/config/actions/base' 

module RailsAdminUnconfirmed 
end 

module RailsAdmin 
    module Config 
    module Actions 

     class Unconfirmed < RailsAdmin::Config::Actions::Base 
     RailsAdmin::Config::Actions.register(self) 

     register_instance_option :controller do 
      Proc.new do 
      @objects = User.unconfirmed 
      render "index" 
      end 
     end 

     register_instance_option :collection do 
      true 
     end 
     end 
    end 
    end 
end 

Kluczem jest to, że jest to 'zbieranie' działania. Następnie dodajesz go do ustawień rails_admin:

# in config/initializers/rails_admin.rb 
# require File.join(Rails.root, "lib", "rails_admin", "unconfirmed") 

RailsAdmin.config do |config| 
    config.actions do 
    # root actions 
    dashboard 
    # collection actions 
    index 
    unconfirmed do 
     only 'User' 
    end 
    end 
    # snip! 
end 

Ta nowa akcja pojawi się na poziomie indeksu modelu użytkownika.