2014-09-08 20 views
12

Czy istnieje sposób, aby określić na stronie indeksu ActiveAdmin w modelu jakie działania są dozwolone, rzeczy takie jak:działania ActiveAdmin

index do 
    actions :edit 
end 

index do 
    actions only: :edit 
end 

nie działają. Jaka jest prawidłowa składnia?

Doceniana.

bundle show activeadmin 
/home/muichkine/.rvm/gems/ruby-2.1.2/bundler/gems/active_admin-9cfc45330e5a 

Odpowiedz

20

Dodaj cokolwiek działania chcesz być dostępne przez przy użyciu actions (zazwyczaj umieszczany jest w definicji modelu):

ActiveAdmin.register YourModel do 
actions :index, :show, :create, :edit, :update 

Jeśli chcesz określić metodę pewnego działania, można zrobić

action_item only: :show do 
    link_to 'Edit', action: :edit # so link will only be available on show action 
end 
+0

Czy akcja ': create' lub': new'? Jeśli użyję 'actions: all, except: [: create]' Nadal mam przycisk "New" na stronie edycji. Użycie 'actions: all, except: [: new]' powoduje, że przycisk zniknie. – spinlock

1

Czy w ten sposób,

ActiveAdmin.register Foobar do 
    actions :all, :except => [:destroy] 
end 

lub

ActiveAdmin.register Foobar do 
    actions :only => :edit 
end 

muszą być określone na poziomie zasobów nie w definicji metody

+1

W oparciu o kod źródłowy [] (https://github.com/activeadmin/activeadmin/blob/master/ lib/active_admin/views/index_as_table.rb # L80) należy go również dostosować w definicji metody, ale tylko po dodaniu nowych akcji i całkowitym wyłączeniu domyślnych akcji. –

+0

@GaborGarami, możesz dostosować go w ramach indywidualnej metody. Sprawdź to http://activeadmin.info/docs/8-custom-actions.html#custom_action_items –

+0

Andrey pokazał także, jak można go dostosować, ale domyślam się, że muichkine zajmuje się tylko działaniami domyślnymi. –

0

Przykład gry z kolumną akcji. W tym przykładzie po prostu ponownie realizowane domyślny jeden, ale można to zrobić potężny kodowanie tutaj:

column :actions do |item| 
    links = [] 
    links << link_to('Show', item_path(item)) 
    links << link_to('Edit', edit_item_path(item)) 
    links << link_to('Delete', item_path(item), method: :delete, confirm: 'Are you sure?') 
    links.join(' ').html_safe 
end 
Powiązane problemy