ブログの投稿ログ

2021年
9月
8月
7月
6月

Railsでバックエンド

前回作成したプロダクトの上でバックエンド側の処理を書いていきたいと思います。

モデルとを作成する

モデル名をuserとしたnameという名前のカラムを作成したい場合に

rails g model user name:string

とすることでhoge/db/migrate/***.rbへ下記のようなファイルが作成されます。

class CreateUsers < ActiveRecord::Migration[6.1]
  def change
    create_table :users do |t|
      t.string :name, null: false

      t.timestamps
    end
  end
end

モデルを更新する

rails db:migrate

ルーティングを確認

rails routes

コントローラーを作成

rails g controller users

hoge/app/controllers/users_controller.rbにファイルが作成しているので以下のように書き換える

class UsersController < ApplicationController
  def index
    # 全てのデータを順番へ持ってくる指示
    users = User.order(created_at: :desc)
    render json: {users: users}
  end
  def create
    # 許可したパラメーターから新しいものを作成する
    user = User.new(user_params)
    # うまく行った時(DV側へ保存されたら)
    if user.save
      render json: {user: user}
    # うまくいかなかったらエラーログを返す
    else
      render json: {error: user.errors}
    end
  end
  # private
  # def set_user
  #   @user = User.find(params[:id])
  # end
  def user_params
    # userの中のnameしか許容できない
    params.require(:user).permit(:name)
  end
end

リクエストを投げてみる

サーバーを立ち上げる

rails s

以前紹介したAdvanced Rest Clientを使ってリクエストを投げる。

値を登録する為にPOSTでnameを登録する

hoge

登録した値をGETで取得する

hoge

まとめ

APIとDBを作成することがこれでサーバーサイド入門することができたので、さらにインプットを継続していきたいと思います!