Co według ciebie jest najbardziej optymalnym sposobem pobrania wszystkich atrybutów dla wszystkich skojarzeń, które ma model AR?Odzyskujesz wszystkie atrybuty asocjacji modelu AR?
tj. Załóżmy, że mamy model Target
.
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
Chciałbym odzyskać wszystkie atrybuty Stowarzyszenia poprzez wywołanie metody na przykład docelowy:
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 => { ... }, ....
}
Obecnie dokonać tej pracy przez powtarzanie każdego stowarzyszenia, a następnie na każdym modelu stowarzyszenie, ale to trochę kosztowne. Jak myślisz, jak mogę to zoptymalizować?
Tylko uwaga: zdałem sobie sprawę, że nie można nazwać target.countries_attributes
na has_many
skojarzeń z nested_attributes
, one_to_one
stowarzyszenia pozwalają zadzwonić target.country_attributes
Tak, użyłem odbić, ale ta metoda jest bardziej optymalna, Tylko jedna rzecz, usunąłem "wszystko" z 'object_or_array = me.send (association_name) .all' To naprawdę nie jest konieczne i wkręca rzeczy, jeśli są' relacje one_to_one'. Dzięki! – jpemberthy
Dobry połów, podedytowałem przykład. I nie ma problemu. :) –