【Rails】Progateで学んだことのまとめ
Progateの「RubyOnRails」コースで学んだことをまとめておきます。
目次
1.アプリケーションを作成する 2.サーバを起動する 3.トップページを生成する 4.ルーティング ⇒ コントローラ ⇒ ビューの順番で作成する 5.テーブルを作成する 6.コンソールを立ち上げる 6-1.テーブルにデータを保存する 7.一覧を表示する 7-1.一覧に表示する内容を降順でループして表示する 8.ルーティングのgetとpostの使い分け 9.データチェックの仕組み「バリデーション」
1.アプリケーションを作成する
ターミナル
rails new アプリケーション名
ターミナル
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
誰かの役に立てれば幸いです。