繁体   English   中英

在rails中,如何从表中选择一个特定列的数据? (只有一行,所以我只想要一个特定的结果,但不是一个数组)

[英]In rails, how to select one specific column's data from a table? (there is only 1 row so I want only a specific result but not an array)

表的名称是Plan,它只有一行 ,因为不允许用户创建新数据或删除现有数据。 他们只能编辑它。

对于表,结构如下:

<Plan id: 1, breakfast: 100, lunch: 240, dinner: 200, ...

这意味着它有三个不同的栏目:早餐,午餐和晚餐。

在控制器文件中,我想访问用户输入的一个特定列的数据,例如早餐。 我怎样才能做到这一点? 因为我对rails很新,并认为它类似于:

Plan.select("breakfast")

但是,我不希望结果是一个数组! 我只想要一个数字,以便我可以直接在我的代码中使用它:

if xxxx > 90
...
end

非常感谢你!

由于是保证只有一排,你可以通过直接抓住它.first还是.last 虽然你可能想选择的列限制到所需的breakfast.select()方法,它可能是没有必要的,你可以检索breakfast从所得的对象:

Plan.last.breakfast
=> 100
# Generates this query:
Plan Load (0.4ms)  SELECT "plans".* FROM "plans" ORDER BY "plans"."id" DESC LIMIT 1

使用.select()以使SQL查询来检索只有 breakfast列是可能的,但不会给你,不是一个很小的内存增加等带来多少好处。

Plan.select(:breakfast).last.breakfast
=> 100
# Generates this query:
Plan Load (0.4ms)  SELECT breakfast FROM "plans" ORDER BY "plans"."id" DESC LIMIT 1

当然,您可以将其存储到变量中,或者在表达式中使用它:

if Plan.last.breakfast > 90
  # whatever
end 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM