web-dev-qa-db-fra.com

Activeadmin désactivant la méthode "nouvelle ressource"

J'utilise Activeadmin pour l'interface d'administration d'une application sur laquelle je travaille (je l'adore) et je suis curieux de savoir s'il est possible de désactiver le lien "Nouvelle ressource" dans le coin supérieur droit de la page d'affichage des ressources?

La ressource que j'utilise est imbriquée dans une autre ressource et j'ai une partie qui lui permet d'être créée à partir de la page d'affichage de cette ressource parente. 

J'ai désactivé la ressource dans le menu, mais je préfère laisser la ressource dans le menu afin de pouvoir voir/éditer/supprimer ces ressources sans avoir à la trouver en cherchant dans sa ressource parente.

38
YuKagi

Essayez config.clear_action_items!

30
makvool

La solution précédente ne fonctionnait pas pour moi, alors voici des solutions générales, qui fonctionnent toujours:

ActiveAdmin.register Book do
  actions :index

  #or like that
  #actions :all, :except => [:destroy]

  index do
    column :title
    column :author
  end  
end
68
makaroni4

Cela a supprimé le bouton "Nouvelle ressource" en haut à droite:

    config.clear_action_items!

Cette opération supprimait à la fois le bouton "Nouvelle ressource" et la case "Il n'y a pas encore de ressources - créez-en une".

    actions :all, :except => [:new]

Merci, Irio 

22
ea0723

Je sais que c’est une vieille question, mais j’y suis tout simplement arrivé (je rencontrais le même problème) et je me suis rendu compte que config.clear_action_items! et actions :all, :except => [:new] sont fondamentalement différents.

config.clear_action_items! supprimera le bouton New de la page d'index, tandis que actions :all, :except => [:new] supprimera le bouton, ET la route, ce qui signifie que vous ne pouvez pas l'appeler d'un autre endroit (ce qui, dans mon cas, est nécessaire).

6
Pedro Rodrigues

J'ai fait ça:

controller do
  def action_methods
    if some_condition
      super
    else
      super - ['new', 'create', 'destroy']
    end
  end
end

Pour désactiver certaines des actions possibles. action_methods retourne un tableau des 7 actions CRUD standard, afin que vous puissiez soustraire celles que vous ne voulez pas

5
jpbalarini
config.clear_action_items!

Supprime toutes les actions . Si vous souhaitez uniquement supprimer le nouveau lien d'action, vous pouvez également utiliser:

config.remove_action_item(:new)
5
hcarreras

Ou même:

ActiveAdmin.register Purchase do
  config.clear_action_items!
  actions :index
end
3
irio
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

#---------------------------------------------------------------------------------------------
0
Balius