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