簡體   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