コントローラテスティングとデバッグ方法を学ぶ
$ bundle install
$ bundle exec rails db:create db:migrate
$ curl -X localhost:3000/api/v1/auth --data 'email=admin@example.com' --data 'password=password'
リクエストパラメーター email と password を受け付け、emailからユーザーを検索し、ユーザーが存在したらパスワードで認証する
- 認証に成功したら、JSON形式でアクセストークンを返す(HTTPステータスコード 200)
- 認証に失敗したら、JSON形式でエラーメッセージを返す(HTTPステータスコード 401)
- ユーザーを検索して存在しなければ、JSON形式でエラーメッセージを返す(HTTP ステータスコード 404)
- ユーザーを検索して存在するもBANされている場合は、JSON形式でエラーメッセージを返す(HTTP ステータスコード 403)
$ bundle exec rails runner 'User.create(email: "admin@example.com", password: "password")'
- デバッグツール
- Ruby on Railsには、byebugというgemがGemfileに書かれているので利用できる
- Sinatraで利用したい場合は、Gemfileに追加すれば利用できる
- コードの途中で
debugger
と書くと、そこで処理が停止して、デバッグができる(JavaScriptと同じ) exit
で終了するn
で次の行に進むs
で次のループに進む
- https://github.com/deivid-rodriguez/byebug#byebugs-commands
- https://qiita.com/TYuko/items/d46f5dc91dd488574273
user = User.new
user.email = "admin@example.com"
user.password = "password"
user.save
User.create(email: "admin@example.com", password: "password")
user = User.find(1)
user = User.find_by(email: 'admin@example.com')
user.update(email: 'foobar@example.com')
user.destroy
users = User.all
banned_users = User.where(banned: false).all
not_banned_users = User.where(banned: true).all
user = User.first
user = User.limit(3)
user = User.order(id: :asc) # 昇順
user = User.order(id: :desc) # 降順