RailsAdmin如何實現自定義操作
本文主要介紹了如何在RailsAdmin中創建自定義操作,先從總體上描述了大致思路,然后逐步的介紹其實現細節。RailsAdmin已經成為rails開發中必不可少的組成部分,通過自定義操作擴展其功能已是不可避免,所以本文具有一定的參考借鑒價值。
前言
做過Ruby開發或者更準確的說Ruby on Rails開發的同學,對RailsAdmin一定不會陌生。RailsAdmin可以快速的幫助您構建后臺管理系統。豐富的gem集成以及便捷的搭建使得RailsAdmin成為web開發中必不可少的組成部分。另外通過RailsAdmin你也可以非常強烈的感受到敏捷開發的魅力所在,以及如何快速的幫助客戶解決問題,快速搭建原型系統,滿足客戶需求。
RailsAdmin固然已經非常的便捷,但有時不能滿足我們的需求,此時就需要我們自定義一些操作,擴展RailsAdmin的功能。
本文主要介紹在RailsAdmin中如何自定義操作(custom action),由于國內ruby及rails中文資料不是特別豐富,如果您從事ruby開發,那么本文可能對您會有一定的幫助。
總體思路
對于教程,我個人比較傾向的一種思路是,先介紹總體流程,讓用戶對其有個整體印象,然后詳細的介紹每一步。這種方式使得用戶能夠非常輕松的接受,遇到問題如果出現問題也能很好的定位問題出現在哪一階段。
我們如何在RailsAdmin中實現自定義操作呢?
主要有以下幾個關鍵步驟:
- 定義和實現我們的操作并注冊到RailsAdmin,讓RailsAdmin能夠知道該操作的存在;
- 定義該操作的前端顯示頁面;
- 在RailsAdmin配置文件中,使用該操作; </ul>
- 當前開發目錄為ROOT;
- 自定義操作名稱為demo; </ul>
通過上面的三個關鍵操作就可以完成我們的自定義操作了。接下來我們將介紹每一步的具體實現細節。
以下描述將基于下述基本約定:
本文我們實現的自定義操作demo達到的目標是:在member scope中添加demo action,點擊demo,前端顯示'hello,world'。
step0
在Rails開發中,無時無刻不體現著“約定優于配置”。那么我們自定義操作應該放在哪兒呢?文件如何命名?答案就是如下所示:
文件路徑為ROOT/lib/rails_admin/;
文件的名稱即為操作名稱即demo.rb;
所以接下來我們將在該路徑創建我們的自定義操作文件。
touch ROOT/lib/rails_admin/demo.rb
接下來我們將介紹一個非常重要的概念就是action scope。你的操作應用到什么地方?
RailsAdmin中action scope主要有三種,分別是:root, collection, member。
- root顧名思義就是根操作,和dashboard處于一個層級;
- collection 針對記錄集合的操作;
- member 針對某條具體的記錄的操作; </ul>
本文我們自定義操作的scope就是collection。接下來我們就具體介紹自定義操作的實現。
require 'rails_admin/config/actions/base'module RailsAdmin class Demo < RailsAdmin::Config::Actions::Base #Demo操作繼承Base RailsAdmin::Config::Actions.register(self) #RailsAdmin中注冊demo操作
register_instance_option :member do #設置其action scope為member true end
end end</pre>
step1
我們在什么地方定義我們的前端顯示文件?答案就是:
ROOT/app/view/rails_admin/main/demo.html.erb
我們的前端模板可以使用erb, haml, slim等,至于模板語言如何使用,這并非本文描述的重點。
所以我們的前端文件顯示非常的簡單,直接打印"hello,world"即可。。<!-- File: demo.html.erb --> <p> hello, world! </p>step2
至此,我們的自定義操作的定義,以及前端顯示都已經完成,接下來就是如何使用該自定義操作了。
我們打開ROOT/config/initializers/rails_admin.rb文件。
- 引入我們的自定義操作文件;
- 在哪個model中使用該操作; </ul>
如何引入?
require 'rails_admin/demo'
如何使用demo action?
我們希望demo操作只應用于User Model中,所以在config.actions中配置。
config.actions do demo do only 'User' end end
總結
本文主要介紹了如何在RailsAdmin中創建自定義操作,先從總體上描述了大致思路,然后逐步的介紹其實現細節。RailsAdmin已經成為web開發中必不可少的組成部分,通過自定義操作擴展其功能已是不可避免,所以本文具有一定的參考借鑒價值。
本文介紹的只是簡單的自定義操作,可以幫助您快速的上手,后續博客將逐步深入的介紹更多的自定義操作用法。