Rails Admin:Custom Actionの追加
デフォルトのアクションオプション
まずはじめに、Rails Adminのアクションにはこんなデフォルトオプションがあるよ、というご紹介。 オプションのデフォルト値一覧は以下のファイルに書かれている。
- register_instance_option :collection?
- モデル単位のアクションか
- デフォルト値: false
- register_instance_option :member?
- オブジェクト単位のアクションか
- デフォルト値: false
- register_instance_option :controller
- コントローラーアクションの中身
- register_instance_option :bulkable?
- 一括更新か
- デフォルト値: false
- モデル単位のアクションのみ
- コントローラー内で params[:bulk_ids] を処理する必要がある
- register_instance_option :http_methods
- 扱うHTTPメソッド
- デフォルト値: [:get]
などなど。
アクションコントローラーの追加
RailsAdminでアクションコントローラーを作成すると、下記のようにタブが追加される。 今回は表示順を変更し、一括で保存するアクションを作成した。
手順
1. lib配下にファイルの作成(今回は display_order_action.rb とした)
2. config/initializers/rails_admin.rb にカスタムアクションの存在を明記する
3. app/views/rails_admin/main 配下に表示する viewファイルを用意する(今回は display_order_action.html.erb とする)
所感
苦しみを感じた。