ActiveRecord的寻找,只返回选定列 [英] ActiveRecord find and only return selected columns

查看:134
本文介绍了ActiveRecord的寻找,只返回选定列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果你穿过这个绊倒,检查这两个答案,因为我现在会用勇气此

If you stumble across this, check both answers as I'd now use pluck for this

我有一个相当大的自定义数据集,我想回到被echoe'd出来为JSON。一个部分是:

I have a fairly large custom dataset that I'd like to return to be echoe'd out as json. One part is:

l=Location.find(row.id)
tmp[row.id]=l

但我想要做的是这样的:

but I'd like to do something like:

l=Location.find(row.id).select("name, website, city")
tmp[row.id]=l

但这似乎并不奏效。我将如何得到这个工作?

but this doesn't seem to be working. How would I get this to work?

THX

修改1
另外,有我可以通过只我要包含的属性的数组的方式?

edit 1
alternatively, is there a way that I can pass an array of only the attributes I want included?

推荐答案

L = Location.find(:ID => ID,:选择=>中的名称,网址,城市:限制=> 1)

...或...

L = Location.find_by_sql(:条件=> [?选择名称,网址,城市FROM地点WHERE ID = LIMIT 1,ID])

此引用文档给你选项的完整列表,你可以用 .find ,其中包括如何号码,身份证,或任何其他任意列/约束来限制。

This reference doc gives you the entire list of options you can use with .find, including how to limit by number, id, or any other arbitrary column/constraint.

L = Location.where([ID =?,ID])。选择(名称,网站,城市)。第一个

参考:活动记录查询界面

您也可以交换这些链接调用的顺序,做。选择(...),其中(...)第一个 - 。所有这些调用要做的就是构造SQL查询,然后把它关闭。

You can also swap the order of these chained calls, doing .select(...).where(...).first - all these calls do is construct the SQL query and then send it off.

这篇关于ActiveRecord的寻找,只返回选定列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆