Skip to content

Commit 501229c

Browse files
authored
Merge pull request heartcombo#1585 from victorperez/master
Allow custom error on forms without model
2 parents a1600d1 + 09c928f commit 501229c

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

lib/simple_form/components/errors.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ def full_error(wrapper_options = nil)
1111
end
1212

1313
def has_errors?
14-
object && object.respond_to?(:errors) && errors.present?
14+
object_with_errors? || object.nil? && has_custom_error?
1515
end
1616

1717
def has_value?
@@ -34,6 +34,10 @@ def full_error_text
3434
has_custom_error? ? options[:error] : full_errors.send(error_method)
3535
end
3636

37+
def object_with_errors?
38+
object && object.respond_to?(:errors) && errors.present?
39+
end
40+
3741
def error_method
3842
options[:error_method] || SimpleForm.error_method
3943
end

test/form_builder/error_test.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,12 @@ def with_full_error_for(object, *args)
224224
assert_no_select 'span.error'
225225
end
226226

227+
test 'input with custom error works when form does not use a model' do
228+
with_form_for :user, :active, error: "Super User Active! cannot be blank"
229+
230+
assert_select 'span.error'
231+
end
232+
227233
test 'input with custom error works when using full_error component' do
228234
swap_wrapper :default, custom_wrapper_with_full_error do
229235
error_text = "Super User Name! cannot be blank"

0 commit comments

Comments
 (0)