in Rails gem activeadminまだ編集と表示のアクションが必要なときに、デフォルトのアクションから削除オプションを削除したいのですが、それを行う方法はありますか?
actions
への呼び出しをすべてのアクティブな管理リソースに追加します。
ActiveAdmin.register Foobar do
actions :all, :except => [:destroy]
end
ある時点でこの問題が発生しました。destroyメソッドが原因で、「削除」ボタンが消えませんでした
actions :all, except: [:destroy]
controller do
def destroy # => Because of this the 'Delete' button was still there
@user = User.find_by_slug(params[:id])
super
end
end
受け入れられた回答は「間違った数の引数」という例外をスローしたので、削除ボタン(:destroyアクション)を除外するためにこれを行いました
ActiveAdmin.register YourModel do
actions :index, :show, :new, :create, :update, :edit
index do
selectable_column
id_column
column :title
column :email
column :name
actions
end
ActiveAdmin
リソースのdefault_actionsからアクションを削除する別の方法は、次のようにconfig
変数を使用することです。
ActiveAdmin.register MyUser do
config.remove_action_item(:destroy)
...
end
1つの方法は、
actions
メソッドを介して受け入れられた回答ですでに言及されています。
削除ボタンを完全に削除する場合は、次のアクションを使用します。actions:all、ただし例外:[:destroy]
ただし、削除ボタンにリソースプロパティに基づく条件が必要な場合(たとえば、関連するデータまたはステータス)。
インデックスページ:index do ...... ......アクションのデフォルト:false do | row |もしできるなら? :read、row text_node link_to "View"、admin_resource_path(row)、class: "view_link" end if can if? :edit、row text_node link_to "Edit"、admin_resource_path(row)、class: "edit_link" end if can if? :destroy、row text_node link_to I18n.t( 'active_admin.delete')、admin_resource_path(row)、method::delete、data:{confirm:I18n.t( 'active_admin.delete_confirmation')}、class: "delete_link" if row.deletable?終わり終わり
終わり
複雑な部分で、私はショーページでそれを制御するために頭を数回叩かなければなりませんでした:
config.remove_action_item(:destroy)#破棄ボタンを削除します
action_itemのみ::show do
link_to I18n.t('active_admin.delete'), admin_resource_path(resource), method: :delete, data: { confirm: I18n.t('active_admin.delete_confirmation') }, class: "delete_link" if resource.deletable?
終わり
私のひどいフォーマットでごめんなさい。