force_reload是什么意思?

时间:2016-12-23 20:49:25

标签: ruby-on-rails rails-activerecord

在ActiveRecord中,当一个对象被赋予belongs_to类方法时,它可以访问#other实例方法,其中other是传递给{{1}的类名}。但是,在http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html的文档中,此方法列为belongs_to。什么是force_reload选项,如果我将其设置为true会发生什么?

1 个答案:

答案 0 :(得分:1)

可以强制关联重新加载。

例如,您有两个模型UserAddress

class User < ActiveRecord::Base
  has_one :address
end

class Address < ActiveRecord::Base
  belongs_to :user
end

你有一个地址:address = Address.first

而不是:

user = address.user
user.reload

您可以使用:

user = address.user(force_reload: true)

它将从数据库(生成SQL查询)中获取user的数据,而不是在内存中。