ユーザーモデルがあるとします。status というインスタンスメソッドがあります。ステータスは関連付けではありません。すでに運用中のデータベースであるため、アクティブなレコード パターンには従いません。
class User < ActiveRecord::Base
def status
Connection.where(machine_user_id: self.id).last
end
end
だから私はこれをします。
@users = User.all
まず、status メソッドを熱心にロードできません。
@users.includes(:status).load
第二に、ユーザーの配列内でそのメソッドをキャッシュできません。
Rails.cache.write("user", @users)
ステータス メソッドは、ビュー レイヤーのように見えるまで呼び出されません。
このメソッドをキャッシュする推奨される方法は何ですか。
たぶん、このインスタンス メソッドは私がやりたいことではありません。スコープを見てきましたが、やりたいことのようには見えません。
多分私はただ協会が必要ですか?次に、インクルードを取得し、キャッシュできます。
しかし、関連付けは複雑なロジックを処理できますか。この場合、インスタンス メソッドは単純なクエリです。そのインスタンス メソッドに複雑なロジックがある場合はどうなりますか?
助けてくれてありがとう。