簡體   English   中英

rails_admin gem中的自定義操作

[英]custom actions inside rails_admin gem

我不太了解它是如何工作的rails_admin gem用於創建一個新的動作。

我想在rails_admin root中創建一個名稱平衡的操作。

我在myapp / lib文件夾中創建了一個名為rails_admin_balance.rb的文件,如:

require 'rails_admin/config/actions'
require 'rails_admin/config/actions/base'

module RailsAdminBalance
end

module RailsAdmin
  module Config
    module Actions
      class Balance < RailsAdmin::Config::Actions::Base
       RailsAdmin::Config::Actions.register(self)
        register_instance_option :object_level do
          true
        end
        register_instance_option :link_icon do
         'icon-eye-open'
        end
        register_instance_option :root? do
          true
        end
      end
    end
  end
end

我在/views/rails_admin/main/balance.html.erb上創建了一個新文件

在我的rails_admin.rb文件里面

config.actions do
 dashboard                     # mandatory
 # collection actions 
 index                         # mandatory
 new
 export
 history_index
 bulk_delete
 # member actions
 show
 edit
 delete
 history_show
 show_in_app
 balance 
end

當我嘗試運行rails服務器時,我收到此錯誤:

退出

/home/ubuntu/Desktop/myapp/config/initializers/rails_admin.rb:33:in `block (2 levels) in <top (required)>': undefined method `balance' for RailsAdmin::Config::Actions:Module (NoMethodError)....

我哪里有錯誤?

我做得不好?

非常感謝你!

我有完全相同的問題。 我認為這是因為/ lib下的rails_admin_[my_action].rb文件沒有被加載,這在rails_admin文檔中沒有記錄。

您可以嘗試從rails_admin.rb or just move all the code you have on加載它, rails_admin.rb or just move all the code you have on rails_admin_ [my_action] .rb rails_admin.rb or just move all the code you have on to the rails_admin.rb`初始化程序(將其粘貼到文件的開頭)。

有第三個選項(只有當你不想重復使用這個動作時),IMHO看起來更清潔:

擺脫rails_admin_[my_action].rb (你的rails_admin_balance.rb )並在rails_admin.rb重寫你的動作,如下所示:

config.actions do
  dashboard                     # mandatory
  # collection actions 
  index                         # mandatory
  new
  export
  history_index
  bulk_delete
  # member actions
  show
  edit
  delete
  history_show
  show_in_app

  member :balance do
    link_icon 'icon-eye-open'
    root? true
  end
end

只需在rails_admin.rb上添加它即可

module RailsAdmin
  module Config
    module Actions
      class Balance < RailsAdmin::Config::Actions::Base
        RailsAdmin::Config::Actions.register(self)
      end
    end
  end
end

在RailsAdmin作用域上打開Actions模塊可以避免此特定錯誤。 您的定義可以保留在lib上的Balance模塊中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM