我有一個奇怪的現象這是我的模型:哪裏。(:SKU => 'sku123')對,其中('SKU =
UpcCode
=> UpcCode(id: integer, Upc: string, Sku: string, Active: boolean, created_at: datetime, updated_at: datetime)
正如你所看到的,SKU是我的一個列
當我在IRC鍵入:
UpcCode.where(:Sku => 'SKU123').first
我得到預期的結果:
UpcCode Load (0.9ms) SELECT "upc_codes".* FROM "upc_codes" WHERE "upc_codes"."Sku" = $1 ORDER BY "upc_codes"."id" ASC LIMIT 1 [["Sku", "GC-115-42"]] => #
<UpcCode id: 95, Upc: "70163098XXXX", Sku: "SKU123", Active: true, created_at: "2016-05-11 03:12:11", updated_at: "2016-05-11 03:12:11">
但是當我嘗試使用這個語法如下:
UpcCode.where("Sku = 'SKU123'").first
或
UpcCode.where('Sku = "GC-115-42"').first
我越來越彷彿SKU列不存在以下錯誤。
UpcCode Load (5.2ms) SELECT "upc_codes".* FROM "upc_codes" WHERE (Sku = "GC-115-42") ORDER BY "upc_codes"."id" ASC LIMIT 1 ActiveRecord::StatementInvalid: PG::UndefinedColumn: ERROR: column "sku" does not exist
我需要能夠使用第二種語法,因爲我需要操縱結果。即不區分大小寫的比較。
所有的標識符那些沒有加雙引號的字符會在PG中轉換爲小寫字母,因爲你的列名'Sku'轉換爲'sku',所以它可以用作'UpcCode.where'(''Sku'=?', 'SKU123')' –
@VishalJAIN工作。謝謝。 –