#ruby-on-rails #ruby-on-rails-3 #ruby-on-rails-3.1 #activeadmin
#ruby-on-rails #ruby-on-rails-3 #ruby-on-rails-3.1 #activeadmin
Вопрос:
Как вы можете ссылаться на экземпляр объекта, который вы просматриваете в данный момент?
РАБОТАЕТ следующее
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?
Или мне придется создать другой экземпляр?
Ответ №1:
Большая часть документации active admin устарела или вообще отсутствует. Скорее всего, вам придется прочитать исходный код и надеяться, что кто-нибудь прокомментирует функции, если вы хотите получить подробную информацию о том, как его использовать.
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])
.
Ответ №2:
Вы можете использовать объект ‘resource’.
ActiveAdmin.register Example do
member_action :some_stuff, :method => :put do
@name = resource.name
end
end