Alle Assoziationsattribute eines AR-Modells abrufen?
Was ist Ihrer Meinung nach der beste Weg, um alle Attribute für alle Assoziationen eines AR-Modells abzurufen?
das heißt: Nehmen wir an, wir haben das ModellTarget
.
class Target < ActiveRecord::Base
has_many :countries
has_many :cities
has_many :towns
has_many :colleges
has_many :tags
accepts_nested_attributes_for :countries, :cities, ...
end
Ich möchte alle Attribute der Assoziation durch Aufrufen einer Methode für eine Zielinstanz abrufen:
target.associations_attributes
>> { :countries => { "1" => { :name => "United States", :code => "US", :id => 1 },
"2" => { :name => "Canada", :code => "CA", :id => 2 } },
:cities => { "1" => { :name => "New York", :region_id => 1, :id => 1 } },
:regions => { ... },
:colleges => { ... }, ....
}
Momentan arbeite ich daran, indem ich jede Assoziation und dann jedes Modell der Assoziation durchläuft. Aber es ist etwas teuer. Wie kann ich das Ihrer Meinung nach optimieren?
Nur eine Anmerkung: Mir ist klar geworden, dass Sie nicht anrufen könnentarget.countries_attributes
aufhas_many
Assoziationen mitnested_attributes
, one_to_one
Vereine dürfen anrufentarget.country_attributes