#バグ発生
「Ruby on Rails で作成したフォームの一つが内容を取得しない」
1、各フォームに入力する。
2、Postを押す。
3、「Posting failed.」で登録できない。
4、Takleのフォームだけ直前に入力した内容を保持してない。
#結論
該当のコントローラーのcreateアクションにしている今回だと「fish_params」の中に「:tackle」を忘れてた。
そのため情報を取得できずに「Posting failed.」してた。
def create
@fish = current_user.fishs.build(fish_params)
if @fish.save
flash[:success] = "Successfully posted."
render :show
else
@fishs = current_user.fishs.order(id: :desc).page(params[:page])
flash.now[:danger] = "Posting failed."
render :new
end
end
↓変更前
def fish_params
params.fetch(:fish, {}).permit(:day, :address, :kind, :number)
end
↓変更後
def fish_params
params.fetch(:fish, {}).permit(:day, :address, :tackle :kind, :number)
end
#解決方法
pry-byebugを使いceateアクションの中身を確認したところtackleがnilになっていた。
つまりそもそもパラメーターが取得できてないとわかりfish_paramsメソッドを確認したら記載漏れしてた。