LoginSignup
0
0

More than 1 year has passed since last update.

管理者ユーザー機能の実装[Ruby, Rails]

Last updated at Posted at 2022-07-01

初めまして、プログラミング初学者"fujitacoma"です!

4月からプログラミングスクールで学習を始めておりましたが、
遅ればせながらのQiita初投稿です。

今回は、現在開発中のオリジナルアプリにて簡単な管理者機能を実装しましたので、
その流れを説明していきたいと思います!

はじめに

今回使用するGemはdeviseのみです。
deviseのインストール及び、usersテーブル作成後から説明したいと思います。

管理者(admin)を追加する

まずはじめに、作成したusersテーブルに管理者(admin)を追加します。


#ターミナル
 rails g migration AddAdminToUsers

この記述の命名規則は、キャメルケース、、でしたかね。
大文字と小文字ががラクダのコブのように続く=キャメルケース
って感じで覚えた気がします。

続いて、作成されたマイグレーションファイルにカラムの情報を追加していきます。
このとき、カラムの型はboolean型、デフォルトは0とします。


#migrationファイル
class AddAdminToUsers < ActiveRecord::Migration[5.2]
  def change
    add_column :users, :admin, :boolean, default: false
  end
end

記述ができたら、、


#ターミナル
 rails db:migrate

忘れず実行しましょう!
ちなみに私はコロンをよく忘れて面倒なことになります。

管理者ユーザーの情報を追加する

次に、管理者ユーザーの情報を登録していきます!
カリキュラムでは一度も使用しなかった、seeds.rbファイルに記述していきます。


# seeds.rb

User.create!(username:  "管理者",
             email: "admin@example.jp",
             password:  "11111111",
             password_confirmation: "11111111",
             admin: true)


上記はあくまで例ですので、
ご自身で設定されたusersテーブルのカラム名に沿って編集ください。

記述ができたら、


#ターミナル
 rails db:seed

こちらも初めましてなコマンド。
seeds.rbファイルを使用したことがなかったので当然ですが。

最後にデータベースに登録した管理者ユーザーの情報が保存されているか確認しましょう。

以上で、管理者ユーザーの追加が完了しました!
あっという間ですね。

これで晴れて、
current_user.admin?
等のメソッドが使用できるようになり、条件分岐による管理者機能が実装できます!

管理者機能に有用なGem

①ActiveAdmin
管理者画面を生成してくれるGemです。
deviseによる管理者機能と連携させて使うのが良いそうです。
GitHub URL : https://github.com/activeadmin/activeadmin

②rails_admin
こちらも管理者画面を生成してくれるGemです。
ActiveAdmin同様、deviseによる管理者機能と連携させて使うのが基本だそうです。
GitHub URL : https://github.com/railsadminteam/rails_admin

③cancancan
管理者権限を設定できるGemです。
同じくdeviseによる管理者機能と連携させて使うのが基本となり、
ActiveAdminやrails_adminとの併用も便利なようです。
GitHub URL : https://github.com/CanCanCommunity/cancancan

いろいろありますね!
また、機会があれば実装してみたいと思います!

かなり古い記事ですが、管理者機能の実装方法選択の参考になります。
https://qiita.com/baban/items/f751fb05c4d2367878aa

最後に

ここまでお読み頂き、有難うございました!
初学者なりに調べつつ記載しておりますが、
ご指摘やアドバイスがあればコメント頂けますと幸いです!

0
0
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
0
0