J'ai une relation has_many typique:Rails meilleure façon de charger les enregistrements enfants sur un objet parent existant
class Effort < ApplicationRecord
has_many :split_times
end
En diverses circonstances, je me retrouve avec un effort instancié et je créer de nouveaux split_times avec split_time.effort_id == effort.id
. Quand je veux passer l'objet d'effort à un autre service, je dois m'assurer que les split_times de l'effort ne sont pas périmés, et je peux le faire avec effort.reload
.
Mais si je veux que les split_times à charger sur l'effort, je me retrouve en train de faire:
effort = Effort.where(id: effort.id).eager_load(:split_times).first
Il doit y avoir une meilleure façon ... ne pas là?
pas vraiment sûr de ce que vous voulez en venir. Pourquoi doit-il y avoir un meilleur moyen? –
Consultez http://guides.rubyonrails.org/association_basics.html#bi-directional-associations et http://guides.rubyonrails.org/association_basics.html#has-many-association-reference (en particulier collection.create) . Peut-être lire la page entière sur plusieurs fois ... –
Aussi, regardez scope ou default_scope si cette aide. –