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_id
がnil
になってしまい、DBに保存できない(エラー)before_action :authenticate_user!
でログインを前提としたり、@troubles = Trouble.includes(:user).order('created_at DESC')
と含めているはずなのに何故?だんだんと、そもそも
user_id
とアソシエーションを組む必要あるのか?商品購入などと違って「誰が」それを行ったのかは関係ないぞ?と思い始め、外したところ、エラー解消。調べていると出てきた
build
メソッド。テストコードでは使うけれど、これなんだろう?と思うも、現在のバージョンではnew
との違いに差異はないとのことだった。
感想
ずーっとうまくいかなくて、ブルーだった(><)
そして頭の中がモヤモヤ(ちゃんと理解していない)とこのブログでも全然かけないことを実感。
把握し切れていないのでモヤモヤするんだな。
ひとまず非同期通信で呟きを投稿できるようになったのはよかった。でも
user_id
の原因は分からなかったのはなんだかモヤモヤ。明日時間を決めて調べてみよう。ふと感じた疑問は、ログインしている本人のみが見られるページと、みんなで共通で見られるページの違いってなんだろう。そこ漏れてるかもと感じた。(明日確認しよう)
最近早起き出来るようになった。方法としては目覚まし時計を寝る部屋とは別の部屋において、朝アラームが鳴った時に「止めないと近所迷惑になる」という感情を利用して起き上がること☺️
覚書(12/29計画の見直し)
(1)やるべきこと (2)やりたいこと (3)やれること
(1)やるべきこと
- 卒業要件の完成
(2)やりたいこと
追加実装を学ぶためのミニアプリ作成
オリジナルアプリの作成
PHPの勉強
面白そうだから参加したい・見たい(済:やめ太郎さんのキータ表彰・yahooイベント)
読書
(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