Rails

SimpleFormのエラー表示対応何点か【不満だったこと解消できた】

はじめに

今まで知らなかったことを最近知って、おおって思ったので置いておきます。

サンプルコード

以下のようなコードについて書いています。

<%= simple_form_for(project, html: { class: 'form-horizontal' }) do |f| %>
  <%= f.error_notification %>
  <%= f.full_error :owner_id %>
  <%= f.input :title %>
  <%= f.input :content %>
  <%= f.button :submit %>
<% end %>

エラーメッセージに主語がない

https://suin.io/546
こちらを見たりすると良いですよ(良記事多謝)。

私は simple_formの設定で対応する方法 でやっています。こちらの方が元々用意されていたものに乗っかる感じがして好きだからです。これで full_error というワードがあることを知りました。

画面に表示項目がない時にエラーメッセージが出せない

内部的に利用している情報が返すエラーについて握りつぶされてしまうと思っていました。ですがそれは間違いだと知りました。

https://github.com/plataformatec/simple_form/wiki/Errors-not-connected-with-visible-fields

ちゃんと用意されているんですよ。

= f.error :field_name

と書かれているのを見て、もしや...と思い

= f.full_error :field_name

としてみたら見事に主語のついた内容で表示できました。