簡體   English   中英

活動記錄查詢錯誤

[英]Active Record query error

該查詢引發錯誤:

EncodingPreset.where('default = ?', false)

ActiveRecord::StatementInvalid: PG::Error: ERROR:  syntax error at or near "default"
LINE 1: ...coding_presets".* FROM "encoding_presets"  WHERE (default = ...
                                                             ^
: SELECT "encoding_presets".* FROM "encoding_presets"  WHERE (default = 'f')

但這有效:

EncodingPreset.where(:default => false)

為什么第一個查詢不起作用?

版本:

ruby-1.9.3-p194
activerecord-3.2.11

這是因為default是關鍵字,必須將其放在引號中才能在查詢中使用。 這應該工作:

EncodingPreset.where('"default" = ?', false)

默認是postgreSQL中的reserved關鍵字,這就是它引發錯誤的原因。 用其他名稱更改列名稱,然后它可以工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM