Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何从activeAdmin中删除删除选项?_Ruby On Rails_Rubygems_Activeadmin - Fatal编程技术网

Ruby on rails 如何从activeAdmin中删除删除选项?

Ruby on rails 如何从activeAdmin中删除删除选项?,ruby-on-rails,rubygems,activeadmin,Ruby On Rails,Rubygems,Activeadmin,在rails gem active admin中,当我仍然需要“编辑并显示”操作时,我想删除默认操作中的“删除”选项,有什么办法吗?您可以向每个活动的管理资源添加对操作的调用: ActiveAdmin.register Foobar do actions :all, :except => [:destroy] end 在某个时候我遇到了这个问题,因为销毁方法,“删除”按钮没有消失 actions :all, except: [:destroy] controller do de

在rails gem active admin中,当我仍然需要“编辑并显示”操作时,我想删除默认操作中的“删除”选项,有什么办法吗?

您可以向每个活动的管理资源添加对
操作的调用:

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

在某个时候我遇到了这个问题,因为销毁方法,“删除”按钮没有消失

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 action)


如果要完全删除销毁按钮,请使用: 操作:所有,除了:[:销毁]

但如果删除按钮需要基于资源属性的条件(例如关联数据或状态)

在索引页:

索引do
# ...
操作默认值:false do | row|
如果可以的话:读,排
文本节点链接到“视图”,管理资源路径(行),类:“视图链接”
结束
如果可以的话:编辑,行
文本节点链接到“编辑”,管理资源路径(行),类:“编辑链接”
结束
如果可以的话:破坏,划船
text_node link_to I18n.t('active_admin.delete'),admin_resource_path(row),method::delete,data:{confirm:I18n.t('active_admin.delete_confirmation')},类:“delete_link”if row.deletable?
结束
结束
结束
现在,复杂的部分和我不得不敲击我的头几次,以控制它在显示页面:

config.remove_action_项(:destroy)#将删除destroy按钮

仅限操作项::显示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?
结束


很抱歉,我的格式设置很糟糕。

ActiveAdmin
资源的默认\u操作中删除操作的另一种方法是通过
config
变量,如:

    ActiveAdmin.register MyUser do
      config.remove_action_item(:destroy)
      ...
    end
通过
操作
方法,可接受的答案中已经提到了一种方法

    ActiveAdmin.register MyUser do
      config.remove_action_item(:destroy)
      ...
    end