diff options
Diffstat (limited to 'db')
-rw-r--r-- | db/seeds.rb | 3 | ||||
-rw-r--r-- | db/seeds/Target.rb | 21 |
2 files changed, 23 insertions, 1 deletions
diff --git a/db/seeds.rb b/db/seeds.rb index 245247e..d5f046d 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -9,7 +9,8 @@ # end MODELS = [ NutrientMeasurement, - NutrientProfile + NutrientProfile, + Target ].freeze def seed_file_for(model_class) diff --git a/db/seeds/Target.rb b/db/seeds/Target.rb new file mode 100644 index 0000000..790fef7 --- /dev/null +++ b/db/seeds/Target.rb @@ -0,0 +1,21 @@ +Target.transaction do + wanted = { + "salades" => 40, + "tomates général" => 40, + "développement floral" => 20 + } + + # Ensure all referenced profiles exist + profiles = NutrientProfile.where(name: wanted.keys).index_by(&:name) + missing = wanted.keys - profiles.keys + raise "Missing NutrientProfile(s): #{missing.join(', ')}" if missing.any? + + target = Target.find_or_create_by!(name: "Objectif par défaut") + + target.target_allocations.destroy_all + wanted.each do |name, pct| + target.target_allocations.build(nutrient_profile: profiles[name], percentage: pct) + end + + target.save! +end |