0

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

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

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

4

3 回答 3

1

在您的帖子模型中,您可以按如下方式定义关联:

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

然后通过帖子引用用户将仅选择所述列。

于 2013-01-11T16:32:21.810 回答
1

您可以使用选择选项

选择所有帖子的用户名

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

带有 where 条件

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

高温高压

于 2013-01-11T16:45:27.107 回答
1

您可以执行以下操作:

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>}
于 2013-01-11T16:51:20.993 回答