Rails ActiveRecord:从具有相同列名的多个表中获取

时间:2015-10-23 16:01:35

标签: ruby-on-rails ruby-on-rails-4 activerecord

我有一个简单的用例:

用户有很多推文 推文属于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做到这一点?

1 个答案:

答案 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")