初心者向け : Railsログイン機能をつけてQAサイトを作る 5 -管理画面機能-

初心者向け : Railsログイン機能をつけてQAサイトを作る 5 -管理画面機能-

初心者向け : Railsログイン機能をつけてQAサイトを作る 1 -ログイン機能+質問機能-
初心者向け : Railsログイン機能をつけてQAサイトを作る 2 -Bootstrap+UI修正-
初心者向け : Railsログイン機能をつけてQAサイトを作る 3 -回答機能+リアクション機能+ベストアンサー機能-
初心者向け : Railsログイン機能をつけてQAサイトを作る 4 -タグ付け機能-
初心者向け : Railsログイン機能をつけてQAサイトを作る 5 -管理画面機能-
初心者向け : Railsログイン機能をつけてQAサイトを作る 6 -検索機能-

今回は管理画面を作成します

管理画面は管理者ユーザーのみアクセスすることができ、
データベースの操作も行うことができるので非常に便利な機能です

Gemの追加

管理画面機能は何種類かのgemがありますが、
今回はactiveadminを利用します
※Gemfileを全てここに記載していますが、デプロイをしていたり、
productionなどの設定を行なっている場合は、
様々なエラーが起こる可能性があるのでactiveadminのみを追加してください。

Gemfileの修正が完了したらターミナルでこちらを実行

次はこちらをターミナルで実行

その後完了したらこちらも実行

こちらで準備は完了しましたが、前回の作成したTagなどの情報も
全てdb/seeds.rbファイルに反映させましょう

反映後はこのようなファイルになります

 

手間ですが、db/development.sqlite3を削除してもう一度データベースを作り直します

 

削除が完了したらターミナルでこちらを実行

データベースの作成が完了したら、seeds.rbのデータを入れます

これで大方準備は完了したので、次は確認していきます

まずはrailsを起動

起動後はこちらのリンクから管理画面にいきます

http://localhost:3000/admin/login

リンクではこのような画面が表示されます

フォームには先ほどdb/seeds.rbに追加したAdminUserの情報でログインします

 

ログインが完了するとこのような画面が表示されます

タイムゾーンと言語を変更する

config/application.rbを以下のように変更してください

 

時間を東京時間へ合わせたのと、言語を日本語へ変更したので、
管理画面は日本語へと変更されました

次はconfig/localesに
devise.ja.ymlファイルを作成し以下の内容をコピペしてください
deviseが大方日本語になります

 

ついでにja.ymlも作成します
config/localesに
ja.ymlファイルを作成し以下の内容をコピペしてください
こちらはアプリ全体の日本語設定です

 

Modelを管理画面で操作できるようにする

管理画面は作成し終わりましたが、
まだデータを管理することができません

なので、次は作成したModelを利用して
データベースにアクセスできるようにします

まずはQuestion modelからいきます
ターミナルでこちらを実行

完了すると、app/adminにquestions.rbというファイルが生成されます

 

それでは、railsを起動させてこちらにアクセスしてみましょう

http://localhost:3000/admin/questions

アクセス後はこのような画面になっています

次は残りのModelを追加していきます
※question_tagですが、あくまでも中間テーブルなので
追加していません。

 

全て追加後はこのような画面になっています

 

最後にQuestionからTagを操作できるようにして完了させます

app/admin/quesitons.rbをこのように修正します

 

次はapp/models/question.rbをこのように修正

 

修正後のQuestion編集、追加画面ではtagが追加できるようになっています

閲覧でもこのようにタグが表示されています

 

まとめ

activeadminは簡単に管理画面機能を作成することができて、
拡張もそこそこできるので早くアプリを作りたいという場合は非常に有効です。

また本来であればデータベース情報にアクセスするには
データベースクライアントというデータベースの中身を確認する
ツールが必要です。
しかしactiveadminを利用すればMySQLやSQLiteなど気にすることなく
利用が可能なので初心者向けで選択してみました

ただし、今回使った機能は1から作ろうと思うとそこそこ大変なものもあるので、
あくまでも初心者、起業するためのツールとして、というのが前提にあります

本格的にエンジニアになるという目標があるのであれば、
ここからはgemに頼るのではなく自力で作ることも重要となります

以上、

参考記事

rails-i18n

deviseを日本語化する

 

 

 

Railsカテゴリの最新記事