Commit 3cb47369e3969ca6e5d88fa14c34af81c99b3f05
1 parent
bedac4e4
Exists in
master
and in
28 other branches
Improves error message for forms in task page
Showing
1 changed file
with
15 additions
and
1 deletions
Show diff stats
plugins/custom_forms/lib/custom_forms_plugin/membership_survey.rb
@@ -13,7 +13,21 @@ class CustomFormsPlugin::MembershipSurvey < Task | @@ -13,7 +13,21 @@ class CustomFormsPlugin::MembershipSurvey < Task | ||
13 | 13 | ||
14 | answers = build_answers(submission, form) | 14 | answers = build_answers(submission, form) |
15 | s = CustomFormsPlugin::Submission.create!(:form => form, :profile => target) | 15 | s = CustomFormsPlugin::Submission.create!(:form => form, :profile => target) |
16 | - answers.map {|answer| answer.submission = s; answer.save!} | 16 | + s.answers.push(*answers) |
17 | + | ||
18 | + failed_answers = answers.select {|answer| !answer.valid? } | ||
19 | + if failed_answers.empty? | ||
20 | + s.save! | ||
21 | + else | ||
22 | + s.errors.clear | ||
23 | + answers.each do |answer| | ||
24 | + answer.valid? | ||
25 | + answer.errors.each do |attribute, msg| | ||
26 | + s.errors.add(answer.field.id.to_s.to_sym, msg) | ||
27 | + end | ||
28 | + end | ||
29 | + raise ActiveRecord::RecordInvalid, s | ||
30 | + end | ||
17 | end | 31 | end |
18 | 32 | ||
19 | def title | 33 | def title |