2012-03-12 78 views

回答

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的自定義操作的另一個示例。

+0

我在根級別創建了一個全局操作,這是一個使用太陽黑子的站點搜索,希望避免一些意大利麪代碼。我不知道如何將您的示例應用到根級自定義操作,但對於模型自定義操作非常方便。我還在Google Groups和Benoit上發佈了一個帖子,也提到我只能在控制器操作中評估一個塊。感謝Steph! https://groups.google.com/d/topic/rails_admin/SwzKt3y2CCI/discussion – Walksalong 2012-03-16 19:40:47

+0

我不知道這是否會有所幫助,但我的一位同事剛剛寫了關於創建自定義Rails操作作爲主要Rails應用程序的一部分(不是寶石):http://blog.endpoint.com/2012/03/railsadmin-custom-action-case-study.html – 2012-03-18 22:52:46

+0

謝謝。我一直在Endpoint上跟蹤你們,並且給予了很大的幫助。到目前爲止RailsAdmin已經很棒了,但是我希望未來的版本能夠使這個過程更加簡單。 – Walksalong 2012-03-30 19:38:34