26歳女性メディア技術者がWebプログラマーに転職する物語

26歳女性メディア技術者がWebプログラマーに転職するまでの過程をメインに投稿します。あたたかく見守ってください。

応用カリキュラム 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 で正しい名前の新しいモデルを作成する。

以降カリキュラムどおりに行う。