【Rails】Progateで学んだことのまとめ

Progateの「RubyOnRails」コースで学んだことをまとめておきます。

目次

1.アプリケーションを作成する
2.サーバを起動する
3.トップページを生成する
4.ルーティング ⇒ コントローラ ⇒ ビューの順番で作成する
5.テーブルを作成する
6.コンソールを立ち上げる
  6-1.テーブルにデータを保存する
7.一覧を表示する
  7-1.一覧に表示する内容を降順でループして表示する
8.ルーティングのgetとpostの使い分け
9.データチェックの仕組み「バリデーション」

1.アプリケーションを作成する

ターミナル

rails new アプリケーション名

2.サーバを起動する

ターミナル

rails server

3.トップページを生成する

ターミナル

rails generate controller home top
または
rails g controller home top

4.ルーティング ⇒ コントローラ ⇒ ビューの順番で作成する

〇ルーティング(/congig/routes.rb)
⇒最初のアクションは自動生成され、2つ目のアクションを追加する場合は、自身でコードを追加する。

Rails.application.routes.draw do
    //「home/top」でアクセスしたとき「home#top」を起動する
    get "home/top" => "home#top"
end

〇コントロール(/app/controllers/home_controller.rb)
⇒最初のアクションは自動生成され、2つ目のアクションを追加する場合は、自身でコードを追加する。

class HomeController < ApplicationController
    def top   //topアクション(中にRubyのコードを書く)
    end
end

〇ビュー(/app/views/home/top.html.erb)
⇒HTMLのタグを使用して、表示内容を記載する。
 Rubyのコードは<% %>または<%= %>で記載する。
⇒CSSは以下に格納されている。
 /app/assets/stylesheets/home.scss
⇒共通部分のビューが以下に格納されている
 /app/views/layouts/application.html.erb

5.テーブルを作成する

〇マイグレーションファイルの作成

ターミナル

rails g model Post context:text

・g ⇒ generateでも可
・Post ⇒ postsテーブルを作成する場合、単数の形「Post」とする
・context:text ⇒ 「カラム名:データ型」とする

〇マイグレーションファイルの内容をデータベースに反映

ターミナル

rails db:migrate

6.コンソールを立ち上げる

ターミナル

//立ち上げる
rails console

//終了する
quit

6-1.テーブルにデータを保存する

ターミナル

//contentが「Hello World」のインスタンスを作成(※一つずつsaveする)
post = Post.new(content: "Hello World")

//Postインスタンスをデータベースに保存
post.save

7.一覧を表示する

7-1.一覧に表示する内容を降順でループして表示する

posts_controller.rb

class PostsController < ApplicationController
    def index
        @posts = Post.all.order(created_at: :desc)
    end
end

index.html.erb(タグ変換されてしまうので、枠の見た目が異なります)

<% @posts.each do |post| %>
    <div class="posts-index-item">
        <%= post.content %>
    </div>
<% end %>

8.ルーティングのgetとpostの使い分け

ルーティングのgetとpostは以下の条件で使い分ける

 get:データベースを変更しないアクション

 post:データベースを変更するアクション

9.データチェックの仕組み「バリデーション」

models/post.rb

class post < ApplicationRecord
    varidates : 検証するカラム名, {検証する内容}
end

そのカラムの値が存在するか(空欄であるか)

class post < ApplicationRecord
    varidates : content, {presence: true}
end

誰かの役に立てれば幸いです。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中