LoginSignup
0
0

More than 3 years have passed since last update.

初学者のプログラミング form_withで保存できないときの対処法

Posted at

form_withでパラメーターが送信されているけれど。DB保存されないときの対処について。

対処法 create!メソッドの利用

まず困ったのが、エラー文が出力されないので、どう対応すべきかわからなかったこと。そこで、検索してみると、コントローラーに記述した、createメソッドをcreate!メソッドに変更する方法。こうすることで保存されない時はエラーメッセージが出力されるため、対応しやすいとのことだった。

  def create
    @event = Event.create!(event_params) #<~ createから変更
    if @event.save
      redirect_to action: :index, notice: "イベントを作成しました"
    else
      render :new
    end
  end

するとエラー文がでた。

エラーメッセージの確認

エラーメッセージを確認すると、"userがいませんよ"と言う内容だったため、マイグレーションファイルの記述にt.references :user, foreign_key: trueを追加。アソシエーションを確認して訂正したところ保存ができた。

まとめ

エラー文がでない時は結構精神的にきつい(出てもきついけど)。けど同じように困っている人が多くいるので先人の知恵を借りるのが一番良い。

参考

お世話になりました!

さいごに

プログラミングの初学者です。その日に学んだことを学習の一環としてアウトプットしています。より深く学習していきたいと考えておりますので、内容に誤りがございまいたらご指摘等いただけますと幸いです。

参考図書:パーフェクト Ruby on Rails【増補改訂版】すがわらまさのり/前島真一/橋立友宏/後藤優一/五十嵐邦明

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0