diff options
| author | Teddy Wing | 2017-09-22 18:58:54 +0200 | 
|---|---|---|
| committer | Teddy Wing | 2017-09-22 18:58:54 +0200 | 
| commit | beced2b5817da0082aa9f3af76581a524535d801 (patch) | |
| tree | d8ccbd6db3e3cf6a3173b4e34e111e8a9f7af9ac | |
| parent | 16f01969fedd429b2c7916eafb19a8a9263bce81 (diff) | |
| download | chouette-core-beced2b5817da0082aa9f3af76581a524535d801.tar.bz2 | |
Add `has_many` association between `Referential` and `ReferentialSuite`
`ReferentialSuite` has many `Referential`s. Need to add a foreign key
column to the `referentials` table to allow that to work.
Refs #3519
| -rw-r--r-- | app/models/referential.rb | 2 | ||||
| -rw-r--r-- | app/models/referential_suite.rb | 2 | ||||
| -rw-r--r-- | db/migrate/20170922165315_add_referential_suite_to_referentials.rb | 8 | ||||
| -rw-r--r-- | db/schema.rb | 5 | ||||
| -rw-r--r-- | spec/models/referential_spec.rb | 1 | ||||
| -rw-r--r-- | spec/models/referential_suite_spec.rb | 1 | 
6 files changed, 18 insertions, 1 deletions
| diff --git a/app/models/referential.rb b/app/models/referential.rb index af08aa868..c7b52ddf8 100644 --- a/app/models/referential.rb +++ b/app/models/referential.rb @@ -45,6 +45,8 @@ class Referential < ActiveRecord::Base    has_many :stop_areas, through: :stop_area_referential    belongs_to :workbench +  belongs_to :referential_suite +    scope :ready, -> { where(ready: true) }    scope :in_periode, ->(periode) { where(id: referential_ids_in_periode(periode)) }    scope :include_metadatas_lines, ->(line_ids) { where('referential_metadata.line_ids && ARRAY[?]::bigint[]', line_ids) } diff --git a/app/models/referential_suite.rb b/app/models/referential_suite.rb index c2f40913e..9fd25ef3f 100644 --- a/app/models/referential_suite.rb +++ b/app/models/referential_suite.rb @@ -1,4 +1,6 @@  class ReferentialSuite < ActiveRecord::Base    belongs_to :new, class_name: 'Referential'    belongs_to :current, class_name: 'Referential' + +  has_many :referentials  end diff --git a/db/migrate/20170922165315_add_referential_suite_to_referentials.rb b/db/migrate/20170922165315_add_referential_suite_to_referentials.rb new file mode 100644 index 000000000..a01ba4d40 --- /dev/null +++ b/db/migrate/20170922165315_add_referential_suite_to_referentials.rb @@ -0,0 +1,8 @@ +class AddReferentialSuiteToReferentials < ActiveRecord::Migration +  def change +    add_reference :referentials, :referential_suite, +      index: true, +      foreign_key: true, +      type: :bigint +  end +end diff --git a/db/schema.rb b/db/schema.rb index 43abbd3af..89f002aee 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@  #  # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20170922161352) do +ActiveRecord::Schema.define(version: 20170922165315) do    # These are extensions that must be enabled in order to support this database    enable_extension "plpgsql" @@ -632,9 +632,11 @@ ActiveRecord::Schema.define(version: 20170922161352) do      t.datetime "archived_at"      t.integer  "created_from_id",          limit: 8      t.boolean  "ready",                              default: false +    t.integer  "referential_suite_id",     limit: 8    end    add_index "referentials", ["created_from_id"], name: "index_referentials_on_created_from_id", using: :btree +  add_index "referentials", ["referential_suite_id"], name: "index_referentials_on_referential_suite_id", using: :btree    create_table "route_sections", id: :bigserial, force: :cascade do |t|      t.integer  "departure_id",       limit: 8 @@ -997,6 +999,7 @@ ActiveRecord::Schema.define(version: 20170922161352) do    add_foreign_key "journey_patterns", "stop_points", column: "departure_stop_point_id", name: "departure_point_fkey", on_delete: :nullify    add_foreign_key "journey_patterns_stop_points", "journey_patterns", name: "jpsp_jp_fkey", on_delete: :cascade    add_foreign_key "journey_patterns_stop_points", "stop_points", name: "jpsp_stoppoint_fkey", on_delete: :cascade +  add_foreign_key "referentials", "referential_suites"    add_foreign_key "route_sections", "stop_areas", column: "arrival_id"    add_foreign_key "route_sections", "stop_areas", column: "departure_id"    add_foreign_key "routes", "routes", column: "opposite_route_id", name: "route_opposite_route_fkey" diff --git a/spec/models/referential_spec.rb b/spec/models/referential_spec.rb index f9ace08cc..bb8fabb2e 100644 --- a/spec/models/referential_spec.rb +++ b/spec/models/referential_spec.rb @@ -10,6 +10,7 @@ describe Referential, :type => :model do    it { should have_many(:metadatas) }    it { should belong_to(:workbench) } +  it { should belong_to(:referential_suite) }    context ".referential_ids_in_periode" do      it 'should retrieve referential id in periode range' do diff --git a/spec/models/referential_suite_spec.rb b/spec/models/referential_suite_spec.rb index 73a616ae1..771187b55 100644 --- a/spec/models/referential_suite_spec.rb +++ b/spec/models/referential_suite_spec.rb @@ -1,4 +1,5 @@  RSpec.describe ReferentialSuite, type: :model do    it { should belong_to(:new).class_name('Referential') }    it { should belong_to(:current).class_name('Referential') } +  it { should have_many(:referentials) }  end | 
