2013-08-12 6 views

Antwort

3

Die Antwort ist in der configuration documentation for actions. Standardmäßig sind alle Aktionen möglich, einschließlich new. Um die möglichen Aktionen anzupassen, listen Sie unter config.actions in config/initilizers/rails_admin.rb alle Aktionen auf, die Sie unterstützen möchten, und lassen Sie die Aktionen aus, die Sie nicht unterstützen möchten. Zum Beispiel, hier ist ein Konfigurationsblock, der alle Standardaktionen mit Ausnahme new erlaubt:

# config/initilizers/rails_admin.rb 
RailsAdmin.config do |config| 
    config.actions do 
    # root actions 
    dashboard 
    # collection actions 
    index 
    # `new` is NOT allowed 
    export 
    history_index 
    bulk_delete 
    # member actions 
    show 
    edit 
    delete 
    history_show 
    show_in_app 
    end 
end 
+0

Hallo Rory, danke für schnelle Antwort. Da es in Initialisatoren war, galt es für alle Modelle. Es verbirgt alle Modelle neue Aktionen, aber ich möchte, dass es neue Aktionen in bestimmten Modellen versteckt. – Senthil

+0

In diesem Fall, ich fürchte, ich weiß nicht, wie es geht. Vielleicht erklärt ein anderer Teil der [RailsAdmin-Dokumentation] (https://github.com/sferik/rails_admin/wiki) wie. Vielleicht musst du dir den [Quellcode] ansehen (https://github.com/sferik/rails_admin), um zu sehen, wie es geht - [diesen Teil] (https://github.com/sferik/rails_admin/blob/ master/app/controllers/rails_admin/main_controller.rb # L15-L26) relevant sein. Oder vielleicht unterstützt RailsAdmin diese Funktion nicht. –

+0

Bei Bedarf kann es zu einem Hack kommen, bei dem Sie den Initialisierer mehrere Male ausführen können. Dadurch können Sie die "neue" Aktion deaktivieren, wenn Sie etwas mit diesem Modell tun, und es erneut aktivieren, wenn Sie auf ein anderes Modell zugreifen. –

22

Ich benutze das im Anschluss an diese über ein bestimmtes Modell zu erreichen. Hoffentlich hilft das:

config.actions do 
    new do 
    except ['Some Model'] 
    end 
end 
+1

hat perfekt funktioniert, danke! – StarWars

+0

Hallo, aber wenn in der URL ich Aktion hinzufügen, erlauben dies den Zugriff. Beispiel 'http: // localhost: 3000/dashboard/user/new':/ – kalelc

+1

@andres mit dem obigen rails_admin DSL wird nur die Buttons vom admin entfernen. Solange die Routen für diese Aktion noch existieren, können Sie diese Aktion ausführen. –

Verwandte Themen