20200927_アウトプット
今日学んだこと(MVCの復習)
ルーティング
- 対応表の役割を果たす(このアクションの時は、このURLへ行く)
- devise_for :users →実は順番も大事。上から読み込まれるため、ユーザーのログイン前提のアプリケーションの時などはこの情報(デバイス)を一番上に書く。
- root 'tweets#index' →ローカルホストを立ち上げた時に「レイルズへようこそ!の画面が出てくるけれど、それとインデックス画面を紐づけている。これがないと「ようこそ!」が出続ける。なおこの書き方は省略している。そこを極めるにはRailsガイドに載っている。
- Railsガイドは最新版はネットに載っているけれどそれ以前のバージョンは購入しないとわからない。
- 調べたい時に「〇〇 Railsガイド」と調べるのがおすすめ。
- Railsは日本人のまつもとさんが作ったということもあり、ガイドが日本語で充実している。他の言語は、 GitHubなどでガイドを検索(英語)することが多い。
- resources :tweets do →resourcesが引数で、:tweetsがシンボル(わかりそうでわからない)→結果、「rails routes」でコマンド実行した時のURIにあたる部分がシンボルで、「Prefix Verb」や「Pattern」や「Controller#Action」部分が引数になることがわかった。
コントローラー
- コントローラーで定義しているアクション名と、ビューファイル名は同一にする。
- createや、update、searchの際などデータを載せて運ぶアクションの時はパラムスを利用。(例:Tweet.create(tweet_params))
- パラムスの中には、シンボルを使ってデータを格納する(例:params.require(:tweet).permit(:image, :text).merge(user_id: current_user.id))
- N+1問題を解決するための”includes”はコントローラーに定義する。
モデル
- アソシエーションはモデル同士をくっつけること。
- その際に、「has_many :tweets」「belongs_to :user」ということを各モデルに記載することで、紐づく。
- バリデーションはモデルに書く。(”この入力は受け付け不可、データベースに入れないです!”の役割を果たす)
ビュー
- <%= link_to '詳細', tweet_path(tweet.id), method: :get %>→「rails routes」で出たプレフィックスやid情報を載せながら、リンク先を設定する
ターミナルのコマンド
-
rails db:create (作る)
-
rails db:migrate:status (ステータスの確認)
-
clear (行をスッキリさせたい時におすすめ)
-
history (コマンド履歴を検索)
理解が浅いところ(つみ残し)
- includes(:user)※コントローラー
- .merge(user_id: current_user.id)※コントローラー
- redirect_to action: :index unless user_signed_in?※コントローラー
- プライベートメソッド※コントローラー
- <%= form_with(model: @tweet, local: true) do |form| %>※モデル
ブログを始める前のアウトプットが少なかった期間は、理解が浅いと実感。
今までわかっていたようでわかっていなかったことの理解が進んだが、エラー問題を通して、もう少し理解を深めたい。(まだ、知識の「引き出し」状態になってない。)
感じていること
- 初めて、昨日のアウトプットに⭐️と、キータの記事に「LGTM」をつけてくれた方がいて、すごく嬉しかった。(ありがとうございます。)
- 今日のチームミーティングでは、みんなの考える「幸せ」を聞いた。それを実現するためにはどうしたらいいのかという話の際に、本音を聞けて、たくさん笑って楽しかった(笑) カラフルは今度読んでみよう。
- 仲間が言っていた「自分の心の奥底で感じている”やってみたい”を無視しないこと」という言葉が素敵で自分に取り入れたいと思った。
- 今日は、Rails勉強会だったり、ずっとお世話になった方の最後の夕礼があったり、自主的なアウトプット会を3セットやったり、チームミーティングがあったり、濃い1日だった。一緒に勉強する仲間がいるとモチベーションが全然違う。