ActiveAdmin「新しいリソース」メソッドを無効にします
-
26-10-2019 - |
質問
私は取り組んでいるアプリでActiveAdminを管理インターフェイスに使用しています(それを愛する)。リソースショーページの右上隅に「新しいリソース」リンクを無効にする方法があるかどうか興味がありますか?
私が使用している特定のリソースは別のリソース内にネストされており、その親リソースのショーページから作成できる部分があります。
メニューのリソースを無効にしていますが、メニューにリソースを残して、親リソースを調べて見つけることなくそれらのリソースを表示/編集/削除できるようにしたいと思います。
解決
config.clear_action_itemsを試してください!
他のヒント
以前の解決策は私のためには機能しなかったので、ここに一般的な解決策があります。
ActiveAdmin.register Book do
actions :index
#or like that
#actions :all, :except => [:destroy]
index do
column :title
column :author
end
end
これにより、最上位から「新しいリソース」ボタンが削除されました。
config.clear_action_items!
これにより、「新しいリソース」ボタンと「リソースはまだありません - 作成」の両方が削除されました。
actions :all, :except => [:new]
ありがとう、イリオ
私はこれが古い質問であることを知っていますが、私はちょうどそれに近づいてきました(同じ問題がありました)、それを認識しました config.clear_action_items!
と actions :all, :except => [:new]
基本的に異なっています。
config.clear_action_items!
を削除します New
インデックスページのボタン、while actions :all, :except => [:new]
ボタンとルートの両方を削除します。つまり、別の場所から呼び出すことはできません(私の場合は必要です)。
config.clear_action_items!
すべてのアクションを削除します。新しいアクションリンクのみを削除する場合は、以下を使用できます。
config.remove_action_item(:new)
これは私がしました:
controller do
def action_methods
if some_condition
super
else
super - ['new', 'create', 'destroy']
end
end
end
可能なアクションの一部を無効にするため。 action_methods 7つの標準CRUDアクションの配列を返すため、不要なものを差し引くことができます
あるいは:
ActiveAdmin.register Purchase do
config.clear_action_items!
actions :index
end
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
#---------------------------------------------------------------------------------------------