2014-09-08 22 views
12

c'è un modo per specificare nella pagina di indice di ActiveAdmin di un modello di ciò che azioni sono consentite, cose come:azioni ActiveAdmin

index do 
    actions :edit 
end 

index do 
    actions only: :edit 
end 

non funzionano. Qual è la sintassi corretta?

Apprezzato.

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

risposta

20

Aggiungi tutte le azioni che si desidera essere disponibili usando actions (di solito è messo sotto la definizione del modello):

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

Se si desidera specificare il metodo per la determinata azione, si può fare

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

L'azione ': create' o': new'? Se uso 'azioni: tutto, tranne: [: create]' Ricevo ancora un pulsante "Nuovo" nella pagina di modifica. Usando le azioni: all, tranne: [: new] 'fa sparire il pulsante. – spinlock

1

fare in questo modo,

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

o

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

devono essere specificati a livello di risorse non in definizione del metodo

+1

Sulla base del [codice sorgente] (https://github.com/activeadmin/activeadmin/blob/master/ lib/active_admin/views/index_as_table.rb # L80) dovrebbe essere personalizzato anche nella definizione del metodo, ma solo aggiungendo nuove azioni e disabilitando completamente le azioni predefinite. –

+0

@GaborGarami, puoi personalizzarlo all'interno dei singoli metodi. Controlla questo http://activeadmin.info/docs/8-custom-actions.html#custom_action_items –

+0

Andrey ha anche mostrato come può essere personalizzato, ma suppongo che muichkine abbia a che fare solo con le azioni di default. –

0

Esempio su come giocare con la colonna azione. In questo esempio ho appena ri-implementato quello di default, ma si può fare di codifica potente qui:

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 
Problemi correlati