ActiveAdmin - как ссылаться на текущий объект? - PullRequest
3 голосов
/ 11 ноября 2011

Как вы можете ссылаться на экземпляр объекта, который вы сейчас просматриваете?

следующие РАБОТАЕТ

ActiveAdmin.register Example do

  sidebar "test" do
    @name = example.name
  end

end

Следующее НЕ РАБОТАЕТ

ActiveAdmin.register Example do

  member_action :some_stuff, :method => :put do
    @name = example.name
  end

end

Как я могу ссылаться на объект в member_action?

Или мне придется создать еще один экземпляр?

Ответы [ 2 ]

4 голосов
/ 11 ноября 2011

Большая часть документации активного администратора устарела или полностью отсутствует.Вам, вероятно, придется прочитать исходный код и надеяться, что кто-то прокомментировал функции, если вы хотите получить подробные сведения о том, как его использовать.

Документация к функциям member_action выглядит следующим образом:

# Member Actions give you the functionality of defining both the
# action and the route directly from your ActiveAdmin registration
# block.
#
# For example:
#
#   ActiveAdmin.register Post do
#     member_action :comments do
#       @post = Post.find(params[:id]
#       @comments = @post.comments
#     end
#   end
#
# Will create a new controller action comments and will hook it up to
# the named route (comments_admin_post_path) /admin/posts/:id/comments
#
# You can treat everything within the block as a standard Rails controller
# action.
# 

Похоже, они ожидают, что вы будете выполнять поиск ваших собственных объектов в пользовательских действиях - Post.find(params[:id]).

1 голос
/ 11 мая 2017

Вы можете использовать объект 'resource'.

ActiveAdmin.register Example do

  member_action :some_stuff, :method => :put do
    @name = resource.name
  end

end
...