【发布时间】:2017-05-11 00:03:29
【问题描述】:
所以我有一个查询,获取所有最近的帖子
posts = Post.where(public: true).limit(25).order(created_at: :desc)
返回我需要的帖子。现在我想返回帖子,但我也想包括拨打电话的用户是否喜欢该帖子。
我有一个类似的表,它只有 post_id 和 user_id。
现在我拥有它的方式是
render :json => posts.as_json(:include => [:likes])
返回所有喜欢帖子的人,这不是我想要的:
{
"id": 43,
"title": "asdfasdfs",
"story": "adfaf sdf sd asdf sdf asdf saf adf",
"created_at": "2017-05-10T22:40:54.587Z",
"updated_at": "2017-05-10T23:18:47.653Z",
"user_id": 8,
"likes": [
{
"id": 1,
"user_id": 4,
"post_id": 43
},
{
"id": 2,
"user_id": 6,
"post_id": 43
}
]
}
我要么只想包含用户的类似内容(不知何故有一个包含来限制它)
或者以某种方式将其设置为 JSON 中的一个名为 like_by_me 的变量,设置为 true 或 false。我试图避免手动绘制地图并再进行 25 个查询,每个帖子一个查询是否被某人喜欢。最好的方法是什么?
谢谢
【问题讨论】:
标签: sql ruby-on-rails activerecord