
今日からプログラミング学習内容や日々の出来事などを定期的に書いていこうと思います!
今日はECサイトのAdminのアカウントを作成していきます。
この記事はあくまでも私の日記ですので、プログラミング作業の流れをなどをなんとなく書いていこうかなと思います。
今回やること
・Adminアカウントでログインを可能にする
・Admin がログインしたら /admins
という Admin がログインしないと見れないページ(ダッシュボード)にリダイレクトする
・AdminアカウントはRails consoleからしか作成できないようにする
(勝手に利用者が登録できないようにする)
・Admin画面で商品を登録できるようにする
作業手順
devise:Adminの追加
まずは管理者アカウントのadminを追加していきます。
$rails g devise Admin
$rails db:migrate
Rails.application.routes.draw do
devise_for :admins
devise_for :users
ルーティングにdevise_for :admins
が自動的に追加されました。
class Admin < ApplicationRecord
devise :database_authenticatable,
:recoverable, :rememberable, :validatable
end
Adminモデルにもこんな感じで追加されてました。今回はconsoleからしか登録できないようにしたいので、:registerable
は消しちゃいます。
それではアカウントを作成しようと思います!
Admin.create!(
email: 'test@test.com',
password: '******',
)
$ rails db:seed
rails c
で実際にアカウントが作られているのかどうかをみてみましょう!
$ rails c
2.5.3 :001 > Admin.all
=> #<ActiveRecord::Relation [#<Admin id: 1, email: "test@test.com", created_at: "2020-10-08 14:32:06", updated_at: "2020-10-08 14:32:06">]>
無事に作られたようですね。
ルーティング
それではルーティングを作っていきましょう!
namespace :admins do
root "toppages#index"
end
admin_root GET /admins(.:format) admins/toppages#index
これで/admins
のというURLが完成しました。次に、controller
とviews
を設定していこうと思います。
コントローラーとビューの作成
$rails g controller admins/toppages index
class Admins::ApplicationController < ApplicationController
end
新しくadmins/application_controller.rb
というファイルを作成します。ディレクトリがadmins
のため、上記のようにAdmins::
と名前空間を追加します。
class Admins::ToppagesController < Admin::ApplicationController
def index
end
end
そしたらtop_controller.rb
にもAdmin::
を追加します。
いせ日記:まとめ
ちょっと中途半端ですが、今日はここまでにします!
明日はAdminアカウントのトップページを作って、商品登録出来るように頑張りたいと思います。
今日の勉強時間:朝1時間 夜3時間
今日は4時間勉強しましたが、やっぱりまだ調べる作業に時間が多く取られてしまいました。。
調べる時間:2時間 プログラミングしながらブログ書く:2時間
ブログ書くのは大変ですが、ブログ書いていると頭の中が整理されるのですごく勉強になりますね。
毎日こんな感じで書いていきますので、よろしくお願いします。
最後まで読んで頂きありがとうございました。