0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

createアクション失敗時にエラーメッセージが表示されない

Posted at

問題発生の経緯

経緯としてはタイトルの通りです。
保存は問題なくできているが、保存が失敗した時にエラー文が表示されず苦戦しておりました。
(コード一部抜粋)

laundries_controller.rb
def create
  @laundry = Laundry.new(laundry_params)
  if @laundry.save
    redirect_to root_path
  else
      render :new
  end
end
new.html.erb
<%= form_with model:@laundry, url: laundries_path, locals: true do |f| %>
  <%= render 'error_messages', model: f.object %>

結論

ビューファイルの記述に誤りがありました。

local: true

locals: true

正しい記述に修正したことで無事エラー文が表示されました。
記述ミスによって非同期通信になっていたため、エラーメッセージが正しく表示されていなかったという訳です。
ちなみにlocalsrenderメソッドのオプションで部分テンプレートで使用する変数の定義ができます。
1文字だけの違いではありますが、その違いで挙動が変わるため、気をつけなければと痛感しました。

余談

記事を作成するにあたりコードを表示させたいがなかなかうまくいかず苦戦...
コードを表示させるときはバッククォートの前後は空行にしないといけないのですね
実際に手を動かしながら覚えていくことが大切だと感じました。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?