20210120・21_アウトプット(オリジナルアプリ/セルフコンパッションのページ)

アウトプット画像

オリジナルアプリ / ”セルフコンパッション”のための投稿ページ作成 

〜昨日行ったこと〜 3時間30分
  • 一昨日のアウトプット 20分

  • 「undefined method `permit' for 」エラーに苦しむ 1時間40分

* 複数形が悪かった? 1時間30分

👉エラーを解決できず。

〜今日行ったこと〜 4時間10分
  • ”セルフコンパッション”のための投稿ページ 3時間
    👉エラーは解消できたものの、user_idの原因は分からずモヤモヤ。

  • アウトプット 1時間10分



新しい発見

エラーから学んだこと。

(1)uninitialized constantエラー

  • アクションで定義している変数は、アクションと同じビューファイル名からでないと読み込まれないと理解。

  • 今回、コントローラーのcreateアクションでしか定義していない変数を、index.html.erbの中で使用しようとしていたのが原因だった様子。

  • コントローラーのクラス名と同じ名前でファイルを作成し(_trouble.html.erb)、index.html.erbにおいて<%= render @troubles %>で呼び出したところ解決。

理由がわかった記事

Rubyでuninitialized constantエラーを解消する方法を現役エンジニアが解説【初心者向け】 | TechAcademyマガジン

【Rails】部分テンプレートの使い方を徹底解説! | Pikawaka - ピカ1わかりやすいプログラミング用語サイト



(2)複数形と単数形について

  • 一番初め、アクションに原因があると分からず、モデル名(単数形)とコントローラー名(複数形)が噛み合っていないからではないかと思ってしまった。(コントローラーとモデルの作り直しをしてしまったが原因はそこではなかった)

  • その作業を行った後に、rails cのコンソールで単数形と複数形を確認できるメソッドがあることを知った。

Railsで単数形を複数形に変換する方法と、その変換がうまく行かない場合の対処法 - 久保清隆のブログ



(3)user_idについて。

  • UserモデルTroubleモデルのアソシエーションを組み、privateメソッド.merge(user_id: current_user.id)を定義。

  • しかし、フォームから呟いてもuser_idnilになってしまい、DBに保存できない(エラー)

  • before_action :authenticate_user!でログインを前提としたり、@troubles = Trouble.includes(:user).order('created_at DESC')と含めているはずなのに何故?

  • だんだんと、そもそもuser_idとアソシエーションを組む必要あるのか?商品購入などと違って「誰が」それを行ったのかは関係ないぞ?と思い始め、外したところ、エラー解消。

  • 調べていると出てきたbuildメソッド。テストコードでは使うけれど、これなんだろう?と思うも、現在のバージョンではnewとの違いに差異はないとのことだった。

railsのnewとbuildの違い - Qiita



感想

  • ずーっとうまくいかなくて、ブルーだった(><)

  • そして頭の中がモヤモヤ(ちゃんと理解していない)とこのブログでも全然かけないことを実感。

  • 把握し切れていないのでモヤモヤするんだな。

  • ひとまず非同期通信で呟きを投稿できるようになったのはよかった。でもuser_idの原因は分からなかったのはなんだかモヤモヤ。明日時間を決めて調べてみよう。

  • ふと感じた疑問は、ログインしている本人のみが見られるページと、みんなで共通で見られるページの違いってなんだろう。そこ漏れてるかもと感じた。(明日確認しよう)

  • 最近早起き出来るようになった。方法としては目覚まし時計を寝る部屋とは別の部屋において、朝アラームが鳴った時に「止めないと近所迷惑になる」という感情を利用して起き上がること☺️



覚書(12/29計画の見直し)

(1)やるべきこと (2)やりたいこと (3)やれること

(1)やるべきこと

  • 卒業要件の完成

(2)やりたいこと

(3)やれること

メンタル:楽しみながら、ゲーム感覚でいく🎮😎

時間で区切り(達成すればよし)
  • PHP 一日15分以上

  • オリジナルアプリ 1日1時間以上

追加実装のミニアプリを作り、引き出しを増やす
優先順位 内容(機能) 締め切り 達成度
1 AWS S3 12/18 完了(フリマアプリ)に実装)
2 AWS EC2 12/24 完了(フリマアプリに実装)
3 ウィザード形式 12/27 完了
4 SNS認証 12/28 完了
5 複数条件検索 12/29 完了
6 タグ付 12/31 完了
7 画像プレビュー 1/2 完了※フォーク
8 複数枚写真OK 1/4 完了※7に追加実装
9 コメント機能(即時更新) 1/8 完了
10 クレカ登録 1/10
11 パンくず 1/14
12 日本語エラー 1/18



身に付ける力(直近)

  • PHP7

  • Docker


身に付ける力(ゆくゆく・覚書)

  • ドメイン駆動開発

  • 環境構築

  • 環境変数などのOS知識

  • バージョン対応力

  • データベースをインポートする力・エクスポートする

  • GitHubActions×OpenAPIGenerator(APICilent)