Jak bylo zmíněno v komentářích, většina databází používá jednoduché uvozovky pro řetězcové literály a dvojité uvozovky pro identifikátory. MySQL je dost laxní a bude akceptovat i dvojité uvozovky pro řetězcové literály, ale PostgreSQL je (naštěstí) dost striktní. Takže chcete použít jednoduché uvozovky:
SnCl.all(:conditions => "col3 = 'xx'")
nebo pomocí where
:
SnCl.where("col3 = 'xx'")
nebo s rozumným využitím citačních prostředků ovladače databáze:
SnCl.where("col3 = #{SnCol.connection.quote('xx')}")
A uložit to nejlepší na konec, jak to rozumní lidé dělají pomocí zástupného symbolu nebo hash argumentů pro where
:
SnCl.where('col3 = ?', 'xx')
SnCl.where('col3 = :col3', :col3 => 'xx')
SnCl.where(:col3 => 'xx')
Poslední by byl pro Rails nejidiomatičtější a dva výše uvedené by byly užitečné pro složitější podmínky, kde je řetězení buď příliš těžkopádné, nebo nefunguje (například když potřebujete OR v klauzuli WHERE).