ruby on rails -如何在使用ActiveRecord查询时只选择特定的列



我知道如果我们想只选择一些特定的列,使用find或where就像这样。

Post.find(10).select("column1")

但是,当我写这样的代码post.user.username(依赖于ActiveRecord关联),如果我想从user表中只选择几列,我找不到这样做的方法。

在你的post模型中,你可以这样定义关联:

belongs_to :user, :select => [:username]

那么通过post引用用户将只选择指定的列。

你可以使用select options

选择所有帖子的用户名

Project.select(["id", "name"])

带有where条件

Project.select(["id", "name"]).where("id=1")

HTH

你可以这样做:

Post.find_by_sql("select * from posts P inner join users U on U.id = P.user_id where U.id = 10").collect{|x| x.<column_name>}

相关内容

  • 没有找到相关文章

最新更新