RailsAdmin如何實現自定義操作

jopen 10年前發布 | 20K 次閱讀 Ruby開發 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開發中必不可少的組成部分,通過自定義操作擴展其功能已是不可避免,所以本文具有一定的參考借鑒價值。

          本文介紹的只是簡單的自定義操作,可以幫助您快速的上手,后續博客將逐步深入的介紹更多的自定義操作用法。

          引用

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!