我知道这是基本的,但无论出于何种原因我都无法弄清楚。
我正在尝试返回一些模型数据,并且大部分时间我都用 返回它pluck
,但 pluck 返回的是一个数组。如何在没有数组的情况下返回值?
<dd><%= Goal.where(id:post.attachid).pluck(:title) %></dd>
这是我拥有的代码,它正在返回,例如, ["Computer"]
我如何让它返回 Computer
检查 activerecord 生成的 SQL 是什么很有趣(您可以在控制台中验证):
Goal.where(id: post.attachid).pluck(:title)
会产生类似的东西:
SELECT "goals"."title" FROM "goals" WHERE "goals"."attachid" = $1 [["id", 1]]
我想你想要实现的更便宜的替代方案是:
Goal.select(:title).find(post.attachid).title
那会产生:
SELECT "goals"."title" FROM "goals" WHERE "goals"."id" = $1 LIMIT $2 [["id", 1], ["LIMIT", 1]]
您可以通过多种方式实现相同的目标,我建议您进行试验,观察 SQL 输出并找到最适合您的方式。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句