Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 活动记录查询错误_Ruby On Rails_Postgresql_Gem_Rails Activerecord - Fatal编程技术网

Ruby on rails 活动记录查询错误

Ruby on rails 活动记录查询错误,ruby-on-rails,postgresql,gem,rails-activerecord,Ruby On Rails,Postgresql,Gem,Rails Activerecord,此查询引发错误: EncodingPreset.where('default = ?', false) ActiveRecord::StatementInvalid: PG::Error: ERROR: syntax error at or near "default" LINE 1: ...coding_presets".* FROM "encoding_presets" WHERE (default = ...

此查询引发错误:

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

默认值是postgreSQL中的保留关键字,这就是它抛出错误的原因。
将列名更改为其他名称,这样它就可以工作了。默认值是postgreSQL中的保留关键字,这就是它抛出错误的原因。
将列名更改为其他名称,这样它就会起作用,这是因为默认值是一个关键字,必须加引号才能在查询中使用。 这应该起作用:

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

这是因为default是一个关键字,必须加上引号才能在查询中使用。 这应该起作用:

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