![](/img/trans.png)
[英]Rails Active Admin: How to add a CSV uploader action on dashboard page
[英]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.