【1.ユーザ登録機能編】Ruby on Rails + Payjpで運営費、手数料機能付きフリマアプリを作る
PayjpのAPIを使って、運営手数料を自動で振り分けてくれる機能を持ったフリマアプリの作り方を紹介していきます。
この記事では、ユーザ登録機能について紹介していきます。
ミニマリストになり、捻出できた時間を有効活用して、リリースまでしていきたいと思っていますので、ぜひご覧ください。
不明点がある方は是非質問サービスもご利用ください。
全体像と機能一覧(再掲)
- ユーザ登録機能
- メルカリのように、サービス、物を売る側と購入する側のユーザを判別できるように登録機能が必要です
- カード登録機能
- PAY.JPにて決済するために、カード情報をユーザに紐づける必要があります
- 口座登録機能
- アプリ利用者(販売側)が売上金をPAY.JPから受け取れるように、口座を登録する必要があります
- テナント登録機能
- 売上金をもらえるユーザ(≒PAY.JPではテナントと呼びます)として、認識できる必要があります
- 口座登録したユーザを販売者側と認識するようにします
- 販売者をテナント登録することによって、プラットフォームに売り上げの一部(定めたパーセンテージの)が分配されます
Deviseの準備
前回DeviseのGemまではインストールしましたが、アプリにインストールしてDeviseの機能を使えるようにします。
rails g devise:install
また、ログイン機能を使えるようにするために、以下のコマンドを実施します。
rails g devise user
ユーザDBの用意
Migrationファイルも上記コマンドで、作成されているので、マイグレーションします。
rails db:migrate
スキーマファイルが以下のようになっていたらOKです。
1create_table "users", force: :cascade do |t|
2 t.string "email", default: "", null: false
3 t.string "encrypted_password", default: "", null: false
4 t.string "reset_password_token"
5 t.datetime "reset_password_sent_at"
6 t.datetime "remember_created_at"
7 t.datetime "created_at", precision: 6, null: false
8 t.datetime "updated_at", precision: 6, null: false
9 t.index ["email"], name: "index_users_on_email", unique: true
10 t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true
11 end
また、ルーティングファイルに自動でルーティングが追加されているはずなので、以下のようになっているか確認してください。
1Rails.application.routes.draw do
2 devise_for :users
3 end
ログイン画面の表示確認
ここまで進められたらログイン画面が表示できるようになっているので、サーバーを起動して、画面を確認します。
rails s
「http://localhost:3000/users/sign_up」にアクセスし、このような画面が表示されていたら、OKです。
試しにユーザ登録してみて、DBに反映されるかまで確認してみてください。
コマンドからも確認は可能ですが、なんだかんだGUIツールが便利なので、ネットで検索して適当に入れていただくのをおすすめします。
Railsはデフォルトで「SQLite」をDBに利用していますので、僕は検索してすぐ出てきた「DB Browser for SQLite」を利用しています。
まとめ
今回フリマアプリを作成していくにあたり、ユーザ登録機能までの紹介をしました。
次回もまだPAY.JPのPlatform機能を利用しないので、審査待ちの間にサクサク進めていきましょう。