2016-12-23 22 views
1

ActiveRecordでは、オブジェクトにbelongs_toクラスメソッドが渡された場合、に渡されたクラス名がotherである#otherインスタンスメソッドへのアクセス権が得られます。ただし、http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.htmlのドキュメントでは、このメソッドはother(force_reload=false)と表示されています。 force_reloadオプションとは何ですか?それをtrueに設定するとどうなりますか?force_reloadは何を意味しますか?

答えて

1

強制的にリロードすることはオプションです。

例は、次の2つのモデル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のデータをフェッチします。

関連する問題