私が作業している(それを愛している)アプリの管理インターフェイスに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]
ありがとう、イリオ
これは私がしました:
controller do
def action_methods
if some_condition
super
else
super - ['new', 'create', 'destroy']
end
end
end
可能なアクションの一部を無効にします。 action_methodsは、7つの標準CRUDアクションの配列を返すため、不要なアクションを減算できます
config.clear_action_items!
すべてのアクションを削除します。新しいアクションリンクのみを削除する場合は、次も使用できます。
config.remove_action_item(:new)
私はこれが古い質問であることを知っていますが、たまたまそれを思いついただけで(同じ問題を抱えていました)、config.clear_action_items!
およびactions :all, :except => [:new]
は根本的に異なります。
config.clear_action_items!
は、インデックスページからNew
ボタンを削除しますが、actions :all, :except => [:new]
はボタンとルートの両方を削除します。つまり、別の場所から呼び出すことはできません(私の場合は必要です)。
あるいは:
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
#---------------------------------------------------------------------------------------------