簡體   English   中英

如何在Rails 5的Rails管理儀表板操作中添加幫助器

[英]how to add helper in rails admin dashboard actions in rails 5

我正在使用Rails Admin gem https://github.com/sferik/rails_admin,並且正在升級到最新版本。

在舊版本的rails admin(0.6.5)和rails(4.1.0)中,將加載helper類,並且一切正常。 升級到Rails 5和Rails admin成為master分支后,助手不再起作用。 我在視圖中調用operator_name,這返回NoMethodError - undefined method 'operator_name' for #<<Class:0x007febe6d22510>:0x007febd334fb90>

我在Rails Admin Wiki中進行了搜索,但沒有找到,有人知道為什么會發生這種情況?

上面的儀表板操作類和幫助器模塊:

儀表板動作類

# my_project/lib/rails_admin/config/actions/callcenter_stats.rb

module RailsAdmin
  module Config
    module Actions
      class CallcenterStats < Dashboard

        register_instance_option :authorization_key do
          :callcenter_stats
        end

        register_instance_option :route_fragment do
          'callcenter_stats'
        end

        register_instance_option :http_methods do
          [:get,:post]
        end

        register_instance_option :link_icon do
          'icon-calendar'
        end

        register_instance_option :controller do
          Proc.new do
            # code ...
          end
        end
      end
    end
  end
end

幫手

# my_project/app/helper/rails_admin/callcenter_stats_helper.rb

module RailsAdmin
  module CallcenterStatsHelper

    def operator_name email
      email[/(.*?)@.*/,1].split('.').map(&:capitalize).join("<br/>").html_safe
    end

  end
end

感謝您的關注。

試試看

看來這是最重要的部分;)

改變config.parent_controller描述這里

如果還是不行

這是我所做的。

在嘗試更新rails_admin ,對其降級,重新安裝,鍵入bin/spring stop ,按此處所述更改config.parent_controller一段時間后,我決定在需要幫助器的地方修改我的自定義操作之一(我在其中添加了helper TableHelper自定義操作)。

而且我無法解釋為什么,它在我想要的頁面上不起作用,但是在另一個動作中起作用,而該動作被稱為完全相同的助手。

出現另一個錯誤,找不到Kaminari視圖。 所以我不得不將分頁部分從app/views/kaminari移到app/views/kaminari/

另一台服務器重新啟動,並且在任何地方都可以正常工作。因此,我刪除了自定義操作中添加的代碼。

解釋不是很清楚,但也許可以幫助其他人! :)

我的天啊! 一年后,我找到了解決方案。 問題是在Rails 5上加載幫助程序的新方法。閱讀RubyOnRails文檔

在以前的Rails版本中,控制器將包括一個與控制器名稱匹配的幫助器,例如MyController將自動包括MyHelper。 要返回舊行為,請將config.action_controller.include_all_helpers設置為false。

我使用以下命令創建my_app/app/helpers/rails_admin/custom_helper.rb

module RailsAdmin::CustomHelper
  include RailsAdmin::CallcenterStatsHelper
  include RailsAdmin::CustomerContactsHelper
  include RailsAdmin::DiscountCouponHelper
  include RailsAdmin::SharedUrlsHelper
  include RailsAdmin::FormHelper
end

並包含在my_app/config/initializers/rails_admin_main_controller.rb

module RailsAdmin::MainController.class_eval do
  include RailsAdmin::CustomHelper
end

並且工作正常; D這不是Rails Admin的問題,僅是從Rails更新的

暫無
暫無

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

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