3 Stimmen

Wie kann man bereits in der Datenbank gespeicherte Beziehungsdaten "ausnutzen"?

Ich verwende Ruby on Rails v3.2.2. Ich habe folgende Modellklassen

class Country < ActiveRecord::Base
  has_many :regions, :foreign_key => 'country_id'
end

class Region < ActiveRecord::Base
  belongs_to :country, :foreign_key => 'country_id'
  has_many :cities, :foreign_key => 'region_id'
end

class City < ActiveRecord::Base
  belongs_to :region, :foreign_key => 'region_id'
end

y _Ich würde gerne eine City belongs_to :country_ .

Ich weiß, dass es am einfachsten ist, wenn man eine country_id Datenbanktabellenspalte an die City Datenbanktabelle und den zugehörigen ActiveRecord-Assoziationen zuzuordnen:

class Country < ActiveRecord::Base
  # ...
  has_many :cities, :foreign_key => 'country_id'
end

class City < ActiveRecord::Base
  # ...
  belongs_to :country, :foreign_key => 'country_id'
end

Um jedoch zu speichern weniger Datenbankdaten Ich denke, ich kann die bereits in der Datenbank gespeicherten Daten "verwenden Region Tabelle da eine Stadt zu einer Region gehört, die wiederum zu einem Land gehört (dies impliziert, dass eine Stadt zu einem Land gehört) aber in diesem Fall habe ich keine Ahnung, wie man ActiveRecord-Assoziationen richtig für City y Country um so die erwähnten Beziehungsinformationen "auszunutzen", die implizit "durch" die Region Modellklasse.

Wie soll ich vorgehen?


Note : Ich bin "gezwungen", die belongs_to :country ActiveRecord-Assoziation in der City Modellklasse, weil ich den RoR verwenden möchte :counter_cache Funktion (verfügbar nur pour belongs_to Verbände), um die in einem Land vorhandenen Städte zu zählen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X