app/helpers/trestle/form_helper.rb in trestle-0.8.13 vs app/helpers/trestle/form_helper.rb in trestle-0.9.0

- old
+ new

@@ -1,23 +1,36 @@ module Trestle module FormHelper + IDENTITY_FIELD_ERROR_PROC = Proc.new { |html_tag, instance| html_tag } + def trestle_form_for(instance, options={}, &block) options[:builder] ||= Form::Builder options[:as] ||= admin.parameter_name options[:data] ||= {} options[:data].reverse_merge!(remote: true, type: :html, behavior: "trestle-form", turbolinks: false) form_for(instance, options) do |f| - with_form(f) { yield f } + with_identity_field_error_proc do + with_form(f) { yield f } + end end end def with_form(form) @_trestle_form = form yield form if block_given? ensure @_trestle_form = nil + end + + def with_identity_field_error_proc + original_field_error_proc = ::ActionView::Base.field_error_proc + ::ActionView::Base.field_error_proc = IDENTITY_FIELD_ERROR_PROC + + yield if block_given? + ensure + ::ActionView::Base.field_error_proc = original_field_error_proc end def form @_trestle_form end