Как упоминалось в комментариях, в большинстве баз данных используются одинарные кавычки для строковых литералов и двойные кавычки для идентификаторов.MySQL довольно слабый и также принимает двойные кавычки для строковых литералов, но PostgreSQL (к счастью) довольно строг.Таким образом, вы хотите использовать одинарные кавычки:
SnCl.all(:conditions => "col3 = 'xx'")
или where
:
SnCl.where("col3 = 'xx'")
или с разумным использованием возможностей цитирования драйвера базы данных:
SnCl.where("col3 = #{SnCol.connection.quote('xx')}")
И сохраняя лучшее для последнего, способ, которым разумные люди делают это, используя заполнитель или аргументы Hash для where
:
SnCl.where('col3 = ?', 'xx')
SnCl.where('col3 = :col3', :col3 => 'xx')
SnCl.where(:col3 => 'xx')
Последний вариант будет наиболее идиоматичным для Rails и двух над нимбыло бы полезно для более сложных условий, когда цепочка слишком громоздка или не работает (например, когда вам нужно OR в предложении WHERE).