Rails
初心者
Progate

39日目、Railsのデータベースが超絶簡単でびっくりしました!

39日目の今日はProgateのRailsその2。データベースの作り方でした。

コマンド1つで作れるのにびっくりしました!


復習

Ruby on RailsⅠ(11分)


データベースは自動生成!

SQLとかいらないんですね。便利!

idカラム・・・自動で番号がどんどん入る

created_atカラム・・・データを作った日時

updated_atカラム・・・データを変更した日時

※なんでデータの事をカラムと言うんだろう?

データの作り方

rails console

<コンソールが起動する>
post = Post.new(content: "Rails勉強中!")
post.save

→データベースにレコードが追加されている!


データの取得

find_byメソッドを使う

post = Post.find_by(id: 3)

post.content
post.created_at

Post表のid=3のレコードをいったん変数postに入れて

表.列でデータを表示するみたいです。


通し番号のページを自動生成する

番号を:idで置き換えると、ページが自動生成される。


../config/routes.rb

Rails.application.routes.draw do

get "posts/index" => "posts#index"
# ここに投稿詳細ページへのルーティングを追加してください
get "localhost:3000/posts/:id" => "posts#show"

get "/" => "home#top"
get "about" => "home#about"
end


忘れずにビューとコントローラーも作る


../controllers/posts_controller.rb

class PostsController < ApplicationController

def index
@posts = Post.all
end

# showアクションを追加してください
def show
end
end



show.html.erb

<div class="main posts-show">

<div class="container">
<div class="posts-show-item">
<p>投稿詳細画面です</p>
</div>
</div>
</div>


paramsで「:id」の値を取得する

@def show

# 変数paramsから「:id」の値を取得し、変数@idに代入してください
@id = params[:id]
end


詳細ページを作る

showアクションで変数@postを定義し、idカラムの値がparams[:id]と等しい投稿をデータベースから取得して代入します。

@post = Post.find_by(id: params[:id])


リンクを作る

link_to(リンクテキスト, リンク先URL)

link_to(post.content, "/posts/#{post.id}")


完成!

(所要時間45分)