Rails 7 - ActiveRecord::Associations::Preloader.new.preload



考虑以下代码:

# in Rails 6.1
def preload(resource, relations)
ActiveRecord::Associations::Preloader.new.preload(resource, relations)
end

:为了与Rails 7兼容,我想改变它,所以我这样写:

def preload(resource, relations)
ActiveRecord::Associations::Preloader.new(records: resource, associations: relations)
end

我做对了吗?因为.preload(resource, relations)在Rails 7中不再存在了。如果你有任何其他建议,我非常期待。

你就快成功了。看起来是这样的:

ActiveRecord::Associations::Preloader.new(
records: [resource].flatten, # in case if resource is a single ApplicationRecord object
associations: relations
).call

最新更新