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