一尘不染

Rails:仅加载一个属性而不是整个模型

sql

可以说我有一个模型,Foo它很大并且有很多组件。对于给定的Ajax查询,我只对一个特定的属性感兴趣bar,该属性是foos表中的一列。

有没有一种简单的方法可以仅加载该属性,而不必费心检索其余记录?例如,如果我只想知道ID# ___ _的Foo酒吧,我该如何检索呢?


阅读 89

收藏
2021-05-16

共1个答案

一尘不染

通过select使用包含要返回的属性的字符串调用方法,可以仅返回特定的列。例如:

Foo.select('bar').first    #<Foo bar: 1>

请记住,这些对象将像普通的ActiveRecord对象一样工作,但会nil为您未选择的任何字段返回,因此请小心使用此功能。

您可以在类名本身或任何Relation上调用select,因此可以将通常使用的ActiveRecord调用(例如)链接在一起where

2021-05-16