1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

質問アプリの作成 #1

Posted at

質問アプリの作成!

デザインは考慮しないものとする。

できること

・質問の投稿
・質問の編集
・質問の更新
・質問の削除

開発環境

・クラウドサービス(codespaces)
・Rudy 3.0.2
・rails7

アプリ新規作成

rails new qanda_7.0.0

作成したフォルダに移動

cd qanda_7.0.0

questionsコントローラーの作成

rails g controller questions

先にアクションの定義を記述

class QuestionsController < ApplicationController
    #質問一覧表示
    def index
    end

    #質問詳細ページ表示
    def show
    end

    #質問の作成
    def new
    end

    #質問の登録
    def create
    end

    #質問の編集
    def edit
    end

    #質問の更新
    def update
    end

    #質問の削除
    def destroy
    end


end

rails g model でMVCのMにあたるモデルを作成(単数系)

rails g model Question name:string title:string content:text

ー** Qustionモデルのデータ内容 ** ー
カラム  説明
id・・・・・・id
name・・・・・質問投稿者名
title・・・・・質問タイトル
content・・・・質問本文
created_at・・・作成日時
updated_at・・・更新日時

ー** 作成されたファイル **ー
・app > models > question.rb
・db > migrate > 20241001101402_create_questions

20241001101402_create_questionsの内容に問題ないことを確認して

rails db:migrate

さらに、テーブルが作成されたか確認する

rails dbconsole

コンソール返答文
SQLite version 3.45.3 2024-04-15 13:34:05
Enter ".help" for usage hints.
sqlite>

が返ってきたら、さらにコンソールで下記を入力。

.tables

コンソール返答文
ar_internal_metadata questions schema_migrations

questionsと書かれている。すきーまも確認

.schema questions

コンソール返答文
CREATE TABLE IF NOT EXISTS "questions" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "title" varchar, "content" text, "created_at" datetime(6) NOT NULL, "updated_at" datetime(6) NOT NULL);

ここでは、最初に命令したstring型ではなく、 "name" varchar, "title" varchar,と変更されていたことがわかります。これはrailsの判断で適した型に変更してくれる仕様のため、こうなっているので事実上問題はありませんでした。

次に進みます。モードを抜け出して終わります。

.q

ルーティングの設定

ルーティングとは・・・URLとアクションを結びつける設定のことです。

早速、questions周りのCRUDで使うルーティングを自動生成することができる。

Rails.application.routes.draw do
  # Define your application routes per the DSL in https://guides.rubyonrails.org/routing.html

  # Defines the root path route ("/")
  # root "articles#index"
  resources :questions
end

ー** 生成されたROUTES **ー
questions GET /questions(.:format) questions#index
POST /questions(.:format) questions#create
new_question GET /questions/new(.:format) questions#new
edit_question GET /questions/:id/edit(.:format) questions#edit
question GET /questions/:id(.:format) questions#show
PATCH /questions/:id(.:format) questions#update
PUT /questions/:id(.:format) questions#update
DELETE /questions/:id(.:format) questions#destroy

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?