diff options
| author | Teddy Wing | 2017-09-25 17:30:23 +0200 |
|---|---|---|
| committer | Teddy Wing | 2017-09-25 17:30:23 +0200 |
| commit | cfd4b8a553af99fd4571172183fa11e59f7e6e35 (patch) | |
| tree | a375f4d41f18c7ae610a21497b14206de66b4f49 /app | |
| parent | 72806a4961e4240cff955c66fff1840e40301b89 (diff) | |
| download | chouette-core-cfd4b8a553af99fd4571172183fa11e59f7e6e35.tar.bz2 | |
Workbench: Ensure `output` attr is initialised when creating workbench
Since all `Workbench`es must have an associated `ReferentialSuite` via
`output`, if none is provided when creating a new `Workbench`, create
one automatically.
This is done in a `before_validation` callback (eck, AR callbacks).
In order for our prior 'should validate_presence_of' test to continue to
work, we have to work around the new callback, otherwise Shoulda can't
set `output` to `nil` to run its expectation and the test fails.
Refs #3520
Diffstat (limited to 'app')
| -rw-r--r-- | app/models/workbench.rb | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/app/models/workbench.rb b/app/models/workbench.rb index b4852b9d5..fe4e6cce1 100644 --- a/app/models/workbench.rb +++ b/app/models/workbench.rb @@ -19,6 +19,8 @@ class Workbench < ActiveRecord::Base has_many :referentials has_many :referential_metadatas, through: :referentials, source: :metadatas + before_validation :initialize_output + def all_referentials if line_ids.empty? @@ -28,4 +30,12 @@ class Workbench < ActiveRecord::Base end end + private + + def initialize_output + # Don't reset `output` if it's already initialised + return if !output.nil? + + self.output = ReferentialSuite.create + end end |
