LoginSignup
4
10

More than 5 years have passed since last update.

RailsのGem Active adminを使用して管理画面を作成する。

Last updated at Posted at 2017-03-16

検索ワード

Deviseを導入済みの場合
rails devise active admin
http://qiita.com/cooltiger/items/205628642ed229e14ab9

active admin
active admin カスタマイズ
http://qiita.com/hkusu/items/3b0fb7f94a254e2ed6fd
http://morizyun.github.io/blog/active-admin-gem-rails/

実装手順

Active admin 公式サイト
https://github.com/activeadmin/activeadmin

Gemfile
gem 'activeadmin', github: 'gregbell/active_admin'
gem 'devise'
gem 'rails-i18n' # 無ければ

$ bundle install --path vendor/bundle

active admin初期設定生成(Deviseを導入済みの場合、usersテーブルなど生成しないようにスキップオプション)
$ bundle exec rails g active_admin:install --skip-users

以下はDevise導入済みの場合

config/intializers/active_admin.rb
config.current_user_method = :current_admin_user

config.current_user_method = :current_user(or current_company)

config.logout_link_path = :destroy_admin_user_session_path

config.logout_link_path = :destroy_user_session_path
config.logout_link_path = :root_path(ログアウト後の遷移先をrootにする場合)
app/application_controller.rb
def authenticate_admin_user!
  authenticate_user!

  # current_userはdevise提供のメソッドです。
  # 権限ユーザのroleについては、好きな方法でよいです。(自分の場合、has_roleメソッドで実装)
  unless current_user.has_role 'admin'
    flash[:alert] = "管理者用ページです。権限があるアカウントでログインしてください。"
    redirect_to root_path
  end
end

テーブル名をAdminCompanyにしたい場合は、マイグレーションファイルを変更
$ bundle exec rake db:migrate

・初期ユーザーを作成
http://qiita.com/Yinaura/items/6753acab94ea246e2d41

方法1.
ActiveAdminがseedファイルを用意してくれているので、

$ bundle exec rake db:seed

方法2.
rails c
AdminUser.create!(email: 'admin@example.com', password: 'password')

bundle exec rails s
ブラウザで http://localhost:3000/admin/ へアクセス

User: admin@example.com
Password: password

・Active Admin の管理対象にするモデルを指定する。
rails generate active_admin:resource inquiry(モデル名)

create app/admin/inquiry.rb が作成される。

app/admin/inquiry.rb を編集する。
登録を許可するパラメータを以下のように追加する。
permit_params :company_name, :name, :email, :phone, :content

http://localhost:3000/admin/ へアクセスする。メニューが追加されています。

・has_manyでアソシエーションをしているテーブルの登録
検索ワード: active_admin has_many
http://qiita.com/ryumu/items/251bac841f1a0257eafe

app/models/post.rb
def Post < ActiveRecord::Base
  has_many :images, dependent: :destroy
  accepts_nested_attributes_for :images, allow_destroy: true
end

permit_params :title, :body, images_attributes: [:image, :_destroy, :id]

Rails 管理画面 bootstrap

Bootstrap 管理画面 レイアウト
https://www.imd-net.com/column/2760/

オススメブログ
http://inter-arteq.com/tag/ruby-on-rails/

4
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
10