我正在使用Activeadmin作为我正在处理的应用程序(喜欢它)的管理界面。我很好奇是否有办法禁用资源右上角的“新资源”链接显示页面?
我正在使用的特定资源嵌套在另一个资源中,我有一个部分允许从该父资源上的show页面创建它。
我已经在菜单中禁用了资源,但我宁愿将资源保留在菜单中,这样我就可以查看/编辑/删除这些资源,而无需通过查看其父资源找到它。
答案 0 :(得分:68)
以前的解决方案对我没有用,所以这里是一般解决方案,总是有效:
ActiveAdmin.register Book do
actions :index
#or like that
#actions :all, :except => [:destroy]
index do
column :title
column :author
end
end
答案 1 :(得分:30)
尝试config.clear_action_items!
答案 2 :(得分:22)
这从右上角删除了“新资源”按钮:
config.clear_action_items!
这删除了“新资源”按钮以及“尚无资源 - 创建一个”框。
actions :all, :except => [:new]
谢谢你,Irio
答案 3 :(得分:6)
我知道这是一个老问题,但我只是想到了(遇到同样的问题),并意识到config.clear_action_items!
和actions :all, :except => [:new]
根本不同。
config.clear_action_items!
会从索引页面中删除New
按钮,而actions :all, :except => [:new]
会删除按钮和路线,这意味着您无法从其他地方调用它(在我的情况下,需要)。
答案 4 :(得分:6)
config.clear_action_items!
将删除所有操作。 如果您只想删除新的操作链接,也可以使用:
config.remove_action_item(:new)
答案 5 :(得分:5)
我这样做了:
controller do
def action_methods
if some_condition
super
else
super - ['new', 'create', 'destroy']
end
end
end
禁用某些可能的操作。 action_methods 会返回7个标准CRUD操作的数组,因此您可以减去不需要的操作
答案 6 :(得分:3)
甚至:
ActiveAdmin.register Purchase do
config.clear_action_items!
actions :index
end
答案 7 :(得分:0)
Worked for me too ! :-)
ActiveAdmin.register AssetSumView do
menu :label => "Asset Summary View", :parent => "Things"
# no button for NEW (since this is a db view)
#---------------------------------------------------------------------------------------------
config.clear_action_items!
enter code here
action_item do
link_to "Assets" , "/admin/assets"
end
action_item do
link_to "AssetCatgCodes", "/admin/asset_catg_codes"
end
#---------------------------------------------------------------------------------------------
答案 8 :(得分:0)
config.clear_action_items!
只完成了一半的工作。不过有一个问题。
如果索引表为空,活动管理员显示此消息
<块引用>还没有[资源]。创建一个
不会被上述命令隐藏,我不想完全禁用该操作。因此,我保留了链接并编辑了新操作以通过消息重定向到父资源索引。
controller do
def new
if params[:parent_id].present?
super
else
redirect_to parent_resources_path, notice: "Create Resource through ParentResource"
end
end
end