2016-09-15 72 views
2

我的模型名爲Person包含3列,即name,age,gender回收Rails中的數據庫記錄

現在如何獲取所有行如果gender = "male"。我試圖通過 獲取如下所示的數據。

p = Person.find_by_gender("male") 

上述說明適當地起作用。但它只返回1條記錄。因爲,該語句被轉換爲像下面的查詢。

SELECT "persons".* FROM "persons" WHERE "persons"."gender" = $1 LIMIT 1 [["gender", "male"]] 

由於限制設置爲1,它只返回1條記錄。那麼,如何取消限制?如果gender 匹配"male",我需要獲取表格中的所有記錄。

回答

2

使用where

Person.where(gender: "male") 

find方法總是返回只有一個記錄

1

在軌找到方法總是返回單個記錄,這就是爲什麼它返回一個記錄。

Person.find_by_gender("male") 

使用凡給你匹配的記錄陣列(這是的ActiveRecord ::關係)

Person.where(:gender => "male") 
相關問題