Activeadmin отключает новый метод ресурсов

Я использую Activeadmin для интерфейса администратора в приложении, над которым я работаю (мне это нравится), и мне любопытно, есть ли способ отключить ссылку «Новый ресурс» в правом верхнем углу страницы показа ресурсов?

Конкретный ресурс, который я использую, вложен в другой ресурс, и у меня есть партиал, который позволяет создать его из страницы показа в этом родительском ресурсе.

Я отключил ресурс в меню, но я бы предпочел оставить ресурс в меню, чтобы я мог видеть/редактировать/удалять эти ресурсы без необходимости находить его, просматривая его родительский ресурс.


person YuKagi    schedule 19.10.2011    source источник


Ответы (7)


Попробуйте config.clear_action_items! удалить ссылку на New и другие ссылки вверху таблицы

person makvool    schedule 20.10.2011
comment
Вот и сделал это. Большое Вам спасибо. В случае, если я хочу иметь элементы в меню действий, мне просто добавить их после того, как я его очистил? - person YuKagi; 20.10.2011
comment
в индексном меню добавление default_actions работает для получения действий просмотра/редактирования/удаления - person makvool; 22.10.2011
comment
Я получил это: неопределенный метод `clear_action_items!' для #‹ActiveAdmin::Application:0x00000103447628› (NoMethodError) - person makaroni4; 08.11.2011
comment
@ makaroni4 вы должны называть это внутри DSL. - person Juanjo Conti; 22.07.2014
comment
actions :index или actions:all, :except ... рекомендуется и задокументировано. - person Piers C; 31.05.2017

Предыдущее решение у меня не сработало, поэтому вот общие решения, которые работают всегда:

ActiveAdmin.register Book do
  actions :index

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

  index do
    column :title
    column :author
  end  
end
person makaroni4    schedule 08.11.2011
comment
actions :index у меня не сработало, но actions :all, :except => [:new] сработало. - person mbillard; 21.03.2012

Это удалило кнопку «Новый ресурс» в правом верхнем углу:

    config.clear_action_items!

Это удалило как кнопку «Новый ресурс», так и поле «Ресурсов еще нет — создайте».

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

Спасибо, Ирио

person ea0723    schedule 29.05.2013
comment
Небольшое примечание здесь. Если вы определите пользовательский контроллер и определите new внутри блока контроллера, это переопределит этот параметр. Только что выучил это. Если вы указываете, что определенное действие не должно существовать, убедитесь, что вы не определяете его также в блоке controller! - person danielricecodes; 22.03.2017

config.clear_action_items!

Удалим все действия. Если вы хотите удалить только новую ссылку действия, вы также можете использовать:

config.remove_action_item(:new)
person hcarreras    schedule 11.01.2016

Я знаю, что это старый вопрос, но я только что подошел к нему (была та же проблема) и понял, что config.clear_action_items! и actions :all, :except => [:new] принципиально разные.

config.clear_action_items! удалит кнопку New со страницы индекса, а actions :all, :except => [:new] удалит и кнопку, и маршрут, то есть вы не сможете вызвать его из другого места (что в моем случае необходимо).

person Pedro Rodrigues    schedule 27.05.2015

Я сделал это:

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

Чтобы отключить некоторые из возможных действий. action_methods возвращает массив из 7 стандартных действий CRUD, поэтому вы можете вычесть те, которые вам не нужны.

person jpbalarini    schedule 05.05.2016

Или даже:

ActiveAdmin.register Purchase do
  config.clear_action_items!
  actions :index
end
person irio    schedule 23.11.2012