LoginSignup
1
0

More than 5 years have passed since last update.

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

Posted at

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分)

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