举个例子,项目有三个 models:User
, Post
, UserLike
,每次请求一个 PostsController#show
时,我想顺便用一条查询获取这个用户是否为这个 Post
点赞了。
如果是 raw SQL 大概是 SELECT * FROM posts WHERE posts.id = ? LEFT JOIN user_likes ON posts.id = user_likes.id LEFT JOIN users ON posts.user_id = users.id;
ActiveRecord 里有没有办法去缓存 SELECT * FROM posts WHERE posts.id = ?
这一部分,每次只查询后面的 join 部分?
ER diagram 如下(可能不够标准):