diff --git a/lib/active_interaction/extras.rb b/lib/active_interaction/extras.rb index 68a9723..90356bf 100644 --- a/lib/active_interaction/extras.rb +++ b/lib/active_interaction/extras.rb @@ -75,6 +75,14 @@ def initialize_with(&block) end end + concern :IncludeErrors do + include ActiveInteraction::Extras::Halt + + def include_errors!(model, **mapping) + errors.merge! model.errors, **mapping + halt_if_errors! + end + end end end diff --git a/lib/active_interaction/extras/all.rb b/lib/active_interaction/extras/all.rb index da5ae22..bf67dfa 100644 --- a/lib/active_interaction/extras/all.rb +++ b/lib/active_interaction/extras/all.rb @@ -13,5 +13,6 @@ module ActiveInteraction::Extras::All include ActiveInteraction::Extras::FormFor include ActiveInteraction::Extras::AfterInitialize include ActiveInteraction::Extras::InitializeWith + include ActiveInteraction::Extras::IncludeErrors end