create

【1.ユーザ登録機能編】Ruby on Rails + Payjpで運営費、手数料機能付きフリマアプリを作る

pepe87
記事内に商品プロモーションを含む場合があります

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です。

schema.rb
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

また、ルーティングファイルに自動でルーティングが追加されているはずなので、以下のようになっているか確認してください。

routes.rb
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機能を利用しないので、審査待ちの間にサクサク進めていきましょう。

ABOUT ME
いず
いず
ライフコーチ・ミニマリスト・IT系
Hard Funな時間を増やすためにミニマリストに。ライフコーチ、プログラミングのサービス開発・メンターをやりながら、ブログを運営。ミニマリストのおすすめアイテムや、考え方を発信していきます。
Recommend
こちらの記事もどうぞ
記事URLをコピーしました