bootstrap4 field_error_proc

bootstrap3でのfield_error_proc設定はありましたが、bootstrap4の情報がほぼ無く書いてみたので、雑目なアウトプット


———————————-

config.action_view.field_error_proc = Proc.new do |html_tag, instance|

      if instance.kind_of?(ActionView::Helpers::Tags::Label)

        html_tag.html_safe

      else

        class_name = instance.instance_variable_get(:@object_name)

        method_name = instance.instance_variable_get(:@method_name)

        input_error_icon = html_tag.gsub("form-control", "form-control is-invalid").html_safe

        below_error_message = "<div class=\"invalid-feedback\">#{I18n.t("activerecord.attributes.#{class_name}.#{method_name}")}#{instance.error_message.first}</div>".html_safe

        input_error_icon.concat(below_error_message)

      end

    end

———————————-


エラーメッセージが不要で有れば、below_error_message以下は不要です。


これで、バリデーションエラー時にinput配下にエラーメッセージ、inputにエラーアイコンが表示されます。