ターミナルでデータベースの中身を確認する方法
データベースの中身を確認したい時に、vs codeのターミナルでうつコマンド
rails db
→ これでdbの中に入れる(dbに接続できる)。ちゃんと接続出来ていると、行頭の部分が sqlite> みたいになる。
.tables
→ テーブル一覧を取得できる。
select * from posts;
→ Postテーブルの中身を確認したい時はこのコマンドになる。from
の後が小文字 かつ 複数形 なことに注意。
.quite
→ データベースから抜けたい時にうつ。これで元のターミナルに戻る。
ターミナルでデータベースを操作する方法
現在のテーブルの中身を削除して、新しく作り直す時
rails db:migrate:reset
seeds.rbファイルで作ったseedデータをdbに流し込む時
rails db:seed
新しいrailsプロジェクトを作成する時の流れ
プロジェクトの新規作成
ターミナルでプロジェクトを作成したいディレクトリ内に移動する。
ディレクトリ内に移動できたら、rails new 〇〇(プロジェクト名)
というコマンドうつ。
例えば、myblogというプロジェクト名にしたいなら、↓のようなコマンドになる。
rails new myblog
modelの作成
最初にmodelを作成する。
model作成のコマンドは、rails g model 〇〇(model名) 〇〇(カラム名):〇〇(データ型)
となる。
例えば、Post
というmodelを作成して、その中に
-
title
というカラム名でデータ型はstring型
-
body
というカラム名でデータ型はtext型
というテーブルを作りたかったとすると、コマンドは下記の通りとなる。
rails g model Post title:string body:text
作成したmodelをdbに反映させる
rails db:migrate
する。
dbにデータを流し込む
- railsコンソールから手動で流し込む場合
まず、コンソールに入る。
rails c
create
する。
Post.create(title: 'title 1', body: 'body 1')
- seedファイルで初期データを流し込む場合
db/seeds.rb
ファイルに記載する。
controllerの作成
rails g controller Posts
ルーティング
どのURLにアクセスされた時に、controllerのどのメソッドを実行するかを設定すること。
config/routes.rb
に記載する。
一般的な処理を一気に設定したいときは、resources :コントローラー名
とする。
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 :posts ←これ
end
設定したルーティングを確認する方法
VSCodeのターミナルで、↓のコマンドを打つ。
rails routes
↓のような表示がでる。
これの2行目を見ると、posts
コントローラーにindex
アクションを作ると、/posts
でアクセスできるんだ!ということがわかる。
contorollerに記載していく
とりあえず「全件取得して、作成順に並び替える」というコードを書いてみる。
- 記述前
class PostsController < ApplicationController
end
- 記述後
class PostsController < ApplicationController
def index
@posts = Post.all.order(created_at: 'desc')
end
end
viewの作成
PostsControllerのindexアクションに対応するviewを作成する。
先程打ったrails g controller Posts
のコマンドにより、app/views/posts
というディレクトリが作成されているので、その中にファイルを作成していく。
index.html.erb
を作成する。