はじめに
この記事は2021年11月にまとめていた「細かいつまずいたことをメモしておく(11月編)をそれぞれ投稿した内容になります
解決方法が最新でない可能性もありますのでご了承ください
問題
以下のコードがあります
class_room.build_member(number: row[:number])
rowはExcelファイルをhash形式にした各行を表しています
ここで、class_room
をsave
するとmember_id
がないというSQLエラーがでました
解決方法
原因は、row[:number]がinteger型で送られてくるのに対して、numberカラムのバリデーションでstringになっていたことから
memberの作成ができずに、(エラーは起きるが)class_roomが作成されるため、参照するmemberがないので怒られていた
class_room.build_member(number: row[:number].to_s)
とすることで解決した