細々とrailsを使ってwebアプリケーションを作る練習をしています。
今回はpostテーブルにマイグレーションファイルが設定できなかった件についてまとめておきます。
結論から言うと、
「AddUserIdToPosts」とすべきところを、
「AddUserIdtoPosts」と大文字と小文字を間違えていたからでした。
今回のエラー(というか凡ミス)を解決する中で、
railsには「なんで小文字とアンダースコアで単語をつなぐ時と、大文字と小文字で単語をつなぐ時があるんだろう?」と気になるようになりました。
ChatGPTに相談しまくった結果を簡単にまとめると、
・クラス名のとき:最初の文字が大文字で、各単語の最初も大文字で記述する。(キャメルケース)
例:UserProfileやAddUserIdToPosts
・メソッド名、変数名、カラム名: すべて小文字で、単語の間をアンダースコアで記述する。(スネークケース)
例:メソッド名(def get_user_nameやdef calculate_total_price)、変数名(user_idやpost_title)、データベースのカラム名(created_atやupdated_at)
ということでした。
(ちなみにアンダースコアとはアンダーバーは同じ意味ということもこの度初めて知りました。今までアンダーバーと言ってましたが、これからはアンダースコアと呼ぶようにします)
キャメルケースとスネークケースで使う場面が違うということを頭に入れておけば、今後入力ミスをしてもすぐに気づけるようになりそうです!