応用カリキュラム edit機能実装にて
■解決したいこと
Pictweetのedit機能実装の段階にて、
コントローラで定義したeditメソッド内のインスタンス変数と
editビューでform_withコード内のインスタンス変数を同じにすると
”Showing /Users/OO/projects/pictweet_snd/app/views/tweetsnds/edit.html.erb where line #4 raised:”
のエラーが出て実装できない。
コントローラとeditビューのインスタンス変数を別にすると、実装ができてしまうが、
なぜできてしまうのか分からない。
■自力で調べた内容
コントローラとビューのインスタンス変数の関係の確認をした。
https://teratail.com/questions/103667
他のコードに影響しているものがあるのではないか。
■仮説と検証作業の結果
コントローラで定義したインスタンス変数とビューで使用するインスタンス変数は
同じでないと実装できないと、再度確認したので、
他のコードを確認したが、カリキュラムと違いなかった。
■解説
モデルを作成する際に”TweetSnd”というアッパーキャメルケースで入力したことが原因。
コントローラ内
@tweetsnd = TweetSndのインスタンス
ビュー内form_withでは、
TweerSnd => tweet_snd + _path をSENDボタンで呼び出そうするが、そんなものはなくのでエラーが出る。
form_withの使用上、キャメルケースの名称の変換は大文字前に_が入ってしまう。
% rails d model TweetSnd ですでに作成したモデルを削除する。
% rails g model Tweetsnd で正しい名前の新しいモデルを作成する。
以降カリキュラムどおりに行う。