web-dev-qa-db-ja.com

ActiveAdminアクション

activeAdminのモデルのインデックスページで、許可するアクションを指定する方法はありますか。

index do
  actions :edit
end

index do
  actions only: :edit
end

動作しない。正しい構文は何ですか?

感謝。

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

actionsを使用して、使用可能にするアクションを追加します(通常はモデル定義の下に置かれます):

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

特定のアクションのメソッドを指定したい場合は、

action_item only: :show  do
  link_to 'Edit', action: :edit # so link will only be available on show action
end
27
Andrey Deineko

アクション列の遊び方の例。この例では、デフォルトのコードを再実装しましたが、ここで強力なコーディングを行うことができます。

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
3
Ziv Barber

このようにして、

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

または

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

メソッド定義ではなく、リソースレベルで指定する必要があります

3
maximus ツ

ソースコードによると、 https://github.com/activeadmin/activeadmin/blob/master/lib/active_admin/views/index_as_table.rb#L8

インデックスのアクションを変更したい場合は、

actions defaults: false do |sample|
  link_to t('active_admin.edit'), admin_sample_path(sample)
end

リンクのタイトルとアクションのパスを置き換えることができます

2
muichkine