Standard SQL-strängar använder enkla citattecken, dubbla citattecken är för identifierare (som tabell- och kolumnnamn); PostgreSQL följer standarden här, MySQL och SQLite är mindre strikta, andra databaser gör andra saker med varierande stränghet. I vilket fall som helst bör enstaka citattecken för SQL-strängbokstavar fungera likadant överallt.
Du använder dubbla citattecken på en SQL-sträng:
@holidays = Holiday.find(:all, :conditions => 'state = "requested"')
#------------------------------------------------------^---------^
Du måste enstaka citattecken:
@holidays = Holiday.find(:all, :conditions => %q{state = 'requested'})
eller modernisera den och låt ActiveRecord ta hand om citatet:
@holidays = Holiday.where(:state => 'requested')
Du måste förmodligen fixa offerten för den här också:
@holidays = Holiday.find(:all, :conditions => ["approver_id = #{current_user.id}", "state = requested"])
Återigen, att modernisera det är det enklaste sättet:
@holidays = Holiday.where(:approver_id => current_user.id, :state => 'requested')
Jag gissar att du utvecklar på SQLite men distribuerar på PostgreSQL. Det är en dålig idé, utveckla och distribuera alltid på samma stack.