我有一个简单的用例:
用户有很多推文 推文属于User
我正在尝试选择两个表上都存在的列名。例如:
@tweets = Tweet.includes(:user).all.pluck(:created_at)
每个表都有一个created_at列,但上面的结果返回了tweet的created_at。我怎样才能拔出用户的created_at?
我的解决方法是使用联接并选择:
@tweets = Tweet.joins(:user).select("users.created_at AS created_date").all
那么我怎么能用pluck做到这一点?
答案 0 :(得分:13)
您可以执行以下操作
@tweets = Tweet.includes(:user).all.pluck(:created_at, "users.created_at")
此处不需要.all
joins/includes
获取所有 记录/相关记录 。所以最终的查询将如下所示
@tweets = Tweet.includes(:user).pluck(:created_at, "users.created_at")