Rails的更好的方式来加载子记录到我有一个典型的has_many关系现有的父对象
问题描述:
:Rails的更好的方式来加载子记录到我有一个典型的has_many关系现有的父对象
class Effort < ApplicationRecord
has_many :split_times
end
在各种情况下,我结束了一个实例化的努力,我创造新的split_times与split_time.effort_id == effort.id
。当我想要将努力对象传递给另一个服务时,我必须确保努力的split_times不是陈旧的,我可以使用effort.reload
来完成此操作。
但是,如果我想成为努力加载split_times,我发现自己做:
effort = Effort.where(id: effort.id).eager_load(:split_times).first
必须有一个更好的办法......不存在?
答
,因为你有机会获得工作对象,也许你可以做
@effort = #effort_object
split_times = @effort.split_times
=> #returns array of data
希望这有助于
真的不知道你在说什么。为什么要有更好的方法? –
查看http://guides.rubyonrails.org/association_basics.html#bi-directional-associations和http://guides.rubyonrails.org/association_basics.html#has-many-association-reference(特别是collection.create) 。也许整个页面读了几次...... –
另外,如果有帮助,请查看范围或default_scope。 –