ダッシュで奪取

元SIerだけどWebエンジニアになりたい!

【雑記】TECH::EXPERT 4日目

4日目です!今日は9時〜20時まで教室にいました。時間が溶けていく…!

目次

  1. 今日やったこと
  2. メモ
  3. 参考URL
  4. 今日の日記
  5. 明日やりたいこと

1. 今日やったこと

  • progate
    • Ruby on Rails5 Ⅷ、Ⅸ
  • カリキュラム
    • アソシエーション
    • where、includes、destroy、update
    • カラムの削除方法
    • ルーティングの確認方法、ネスト
    • get、post、delete、patch
    • 部分テンプレート

2. メモ

  • カラムを追加する(マイグレーションファイルに書く)
# add column :テーブル名, :カラム名, :データ型
add column :users, :name, :string
  • バリデーション
# validates :制限かけたいカラム, {内容: プロパティ}
validates :name, {presence: true} # NOTNULL制約
  • ログイン情報を持たせるには、特別な変数sessionを使う
# session[:キー] = 値
session[:user_id] = 1 # id: 1のユーザーをログインさせる
  • before_action
# 最初にtestアクションを実行
before_action :test

# hogeとpiyoアクションの前に、testアクションを実行
before_action :test, {only: [:hoge, :piyo]}

# hogeアクション以外の前に、testアクションを実行
before_action :test, except:[:hoge]
  • whereメソッド
    • 条件に一致したレコードを、配列で取得できる
# idが3未満のツイートを取得
Tweet.where('id < 3')

#idが3未満で、ユーザーidが3のツイートを取得
Tweet.where('id < 3').where(user_id:3)
  • includes
    • 関連するモデルをまとめて取得
# includes(:モデル名)
@test = Tweet.includes(:user)
  • ルーティングの確認コマンド
rake routes
  • devise
# ログインしているか確認する
if user_signed_in?
  ログインしている時の処理
end
  • 下記はどちらも同じ
if num == 0
  puts '0です'
end

puts '0です' if num == 0
  • HTTPリクエストのメソッド
get サーバーからブラウザに情報を返すとき
post サーバーに情報を送信・保存するとき
delete サーバーから情報を削除するとき
patch ブラウザからサーバーに情報を返すとき
  • updateメソッド
tweet = Tweet.find(1)
tweet.update(text: "こんにちは")
  • 下記7つのアクションは、resources:コントローラ名で自動設定できる

    • index
    • show
    • new
    • create
    • edit
    • update
    • destroy
  • ルーティングのネスト

resource :tweets do
  resources :comments, only: [:create]
end
  • 部分テンプレート
# _test.html.erbを呼び出している
render partial: "test"
# _test.html.erbを呼び出している + "aaa"という文字の入った変数textをテンプレートの中で使える
render partial: "test", locals: { text: "aaa" }

3. 参考URL

4. 今日の日記

朝早く起きるのつらい…つらい…となっていたのですが、朝ごはんを教室で食べれば良いのでは?と思い、今日は朝一で教室入りしました。
これで睡眠時間1時間確保できるぞ…!

カリキュラムの言いなり状態のまま進めてしまっていますが…取りあえず今はそのままにしておいて、洗礼を受けてから考えようと思います。

5. 明日やりたいこと

  • カリキュラム
    • Rails エラー問題の続き
    • 映画レビューサイト作成の準備、スクレイピング