レール6の管理パネル
Ruby on Railsで作業するとき、私はGemに最も到達しましたActiveAdmin . それはあなたのRuby on Railsアプリの上に管理セクションを構築するためのフレームワークです.
本当に私はActiveAdminを使用して楽しんでいることは、それが静かにDateTimeフィールドを終了するようなRails規則に従って奨励することです
あなたがバックオフィスRailsアプリを構築しているならば、私はActiveAdminの中で全部のものを造る価値があることができて、リモートカスタムを書くことについて忘れることができるならば、私も議論します.
ビデオとソースコード
Final Source code
ActiveAdminを設定する
ActiveAdminを設定することは彼らのrepoにかなりよく書かれています(そして、私がこれを書いた時から変わったかもしれません).私が変更することを期待しない唯一の前提条件は、必要ですDevise 認証を処理する設定です.
閉じるこの動画はお気に入りから削除されています
資源、フィルタと範囲
ActiveAdminは、セットアップの足場を助けるために端末を介して呼び出すことができるいくつかの発電機が付属しています.閉じるこの動画はお気に入りから削除されています
私はその後、カスタマイズ
カスタムアクション
最後の動画では、ActiveAdminリソース内でカスタムアクションを設定する方法とDraper モデルを飾る.
例えば、もし私がいつも投稿本文をダッシュボードに出力したいならば、デコレータを使って、どのフィールドを1つの場所にフォーマットしたいかを決めます.
本当に私はActiveAdminを使用して楽しんでいることは、それが静かにDateTimeフィールドを終了するようなRails規則に従って奨励することです
_at
. それも、デコレータ&パントのような概念を紹介します“あなたはそれを右に行う場合は、それは”経験を構築するために超迅速になります.あなたがバックオフィスRailsアプリを構築しているならば、私はActiveAdminの中で全部のものを造る価値があることができて、リモートカスタムを書くことについて忘れることができるならば、私も議論します.
ビデオとソースコード
ActiveAdminを設定する
ActiveAdminを設定することは彼らのrepoにかなりよく書かれています(そして、私がこれを書いた時から変わったかもしれません).私が変更することを期待しない唯一の前提条件は、必要ですDevise 認証を処理する設定です.
閉じるこの動画はお気に入りから削除されています
$ bundle add devise
$ rails generate devise:install
$ bundle add activeadmin
$ rails generate active_admin:install --use_webpacker
この設定は工夫され、AdminUser
モデル作成app/admin
フォルダとActiveAdmin資産のためにWebPackerを使用するのに必要なファイルを作成しました.資源、フィルタと範囲
ActiveAdminは、セットアップの足場を助けるために端末を介して呼び出すことができるいくつかの発電機が付属しています.閉じるこの動画はお気に入りから削除されています
$ rails generate active_admin:resource Author
$ rails generate active_admin:resource Post
$ rails generate active_admin:resource Category
これは私たちの管理パネルの著者、ポスト&カテゴリモデルのいくつかの単純な足場を生成しました.私はその後、カスタマイズ
app/admin/posts.rb
ファイルは、我々のユーザーがアクセス&アプリの投稿を変更する方法以上の細かい穀物管理を可能にする.# app/admin/posts.rb
ActiveAdmin.register Post do
filter :title
filter :author_name, as: :string
filter :created_at
filter :categories
scope :published
index do
selectable_column
column :id
column :title
column :published?
column :author
column :created_at
actions
end
permit_params :title, :body, :author_id, category_ids: []
form do |f|
f.inputs :title, :body, :author
f.inputs "Categories" do
f.input :categories, as: :check_boxes
end
actions
end
show do
attributes_table do
row :title
row :body
row :author
row :created_at
row :updated_at
row :published_at
row :categories
end
active_admin_comments
end
end
カスタムアクション
最後の動画では、ActiveAdminリソース内でカスタムアクションを設定する方法とDraper モデルを飾る.
# app/admin/posts.rb
ActiveAdmin.register Post do
includes :author
decorate_with PostDecorator
# [snip]
member_action :publish, method: :put do
resource.publish!
redirect_to resource_path, notice: "Published!"
end
action_item :publish, only: :show, if: proc { !resource.published? } do
link_to 'Publish', [:publish, :admin, resource], method: :put
end
# [snip]
end
私はデコレータを使用しての大ファンです(時々プレゼンターと呼ばれる)、彼らは“私の意見では、私は常にこのような形式で、このモデルからデータをしたい”と言うためにきちんとした方法を提供しています.例えば、もし私がいつも投稿本文をダッシュボードに出力したいならば、デコレータを使って、どのフィールドを1つの場所にフォーマットしたいかを決めます.
# app/decorators/post_decorator.rb
class PostDecorator < ApplicationDecorator
delegate_all
def body
helpers.simple_format(object.body)
end
end
Reference
この問題について(レール6の管理パネル), 我々は、より多くの情報をここで見つけました https://dev.to/mikerogers0/admin-panels-in-rails-6-video-series-38ddテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol