Standard SQL-strenge bruger enkelte anførselstegn, dobbelte anførselstegn er for identifikatorer (såsom tabel- og kolonnenavne); PostgreSQL følger standarden her, MySQL og SQLite er mindre strenge, andre databaser gør andre ting med varierende mængder af strenghed. Under alle omstændigheder bør enkelte anførselstegn for bogstaver i SQL-strenge fungere det samme overalt.
Du bruger dobbelte anførselstegn på en SQL-streng:
@holidays = Holiday.find(:all, :conditions => 'state = "requested"')
#------------------------------------------------------^---------^
Du skal have enkelte citater:
@holidays = Holiday.find(:all, :conditions => %q{state = 'requested'})
eller moderniser det og lad ActiveRecord håndtere citatet:
@holidays = Holiday.where(:state => 'requested')
Du skal sandsynligvis også rette citatet for denne:
@holidays = Holiday.find(:all, :conditions => ["approver_id = #{current_user.id}", "state = requested"])
Igen, modernisering er den nemmeste måde:
@holidays = Holiday.where(:approver_id => current_user.id, :state => 'requested')
Jeg gætter på, at du udvikler på SQLite, men implementerer på PostgreSQL. Det er en dårlig idé, udvikle og implementer altid på den samme stak.