Я создал пользовательское действие в RailsAdmin, используя https://github.com/sferik/rails_admin/wiki/Custom-action, но я не уверен, где бы я поместил свои методы контроллера в пользовательское действие, и если я использую форму, каков будет путь для вызова этих методов контроллера?Где методы контроллера для пользовательских действий rails_admin?
2
A
ответ
4
Вот пример пользовательского действия я использую для PDF (проект here):
require "rails_admin_pdf/engine"
module RailsAdminPdf
end
require 'rails_admin/config/actions'
module RailsAdmin
module Config
module Actions
class Pdf < Base
RailsAdmin::Config::Actions.register(self)
register_instance_option :member do
true
end
register_instance_option :controller do
Proc.new do
report = "#{@object.class.to_s.demodulize}Report".constantize.new
send_data report.to_pdf(@object), :filename => "#{@object.class.to_s.demodulize}_#{@object.id}.pdf", :type => "application/pdf"
end
end
end
end
end
end
Таким образом, чтобы ответить на ваш вопрос, метод контроллера идет внутри Lib/rails_admin_ * custom_action_name * .rb модуль. Я не уверен, что понимаю вторую часть вашего вопроса относительно подачи формы. Вы можете проверить другой пример пользовательского действия с отправкой формы here.
Я создал глобальное действие на корневом уровне, которое является поиском на сайте с использованием солнечного пятна и надеялось избежать некоторого кода спагетти. Я не знал, как применить свой пример к пользовательскому действию на уровне root, но это было очень удобно для пользовательских действий модели. Я также разместил нить в Google Groups, и Benoit также упомянул, что я могу иметь только блок, оцененный в действии контроллера. Спасибо, Стеф! https://groups.google.com/d/topic/rails_admin/SWzKt3y2CCI/discussion – Walksalong
Я не знаю, поможет ли это, но мой коллега просто написал о создании настраиваемого действия Rails как части основного приложения Rails (а не как драгоценный камень): http://blog.endpoint.com/2012/03/railsadmin-custom-action-case-study.html –
Спасибо. Я преследовал вас, ребята, в Endpoint, и это было большой помощью. RailsAdmin пока замечательный, но я надеюсь, что будущие версии упростят этот процесс. – Walksalong