Стандартните SQL низове използват единични кавички, двойните кавички са за идентификатори (като имена на таблици и колони); PostgreSQL следва стандарта тук, MySQL и SQLite са по-малко строги, други бази данни правят други неща с различна степен на строгост. Във всеки случай, единичните кавички за SQL низови литерали трябва да работят еднакво навсякъде.
Използвате двойни кавички на SQL низ:
@holidays = Holiday.find(:all, :conditions => 'state = "requested"')
#------------------------------------------------------^---------^
Трябва да поставите единични кавички:
@holidays = Holiday.find(:all, :conditions => %q{state = 'requested'})
или го модернизирайте и оставете ActiveRecord да се справи с цитирането:
@holidays = Holiday.where(:state => 'requested')
Вероятно ще трябва да коригирате цитирането и за това:
@holidays = Holiday.find(:all, :conditions => ["approver_id = #{current_user.id}", "state = requested"])
Отново модернизирането е най-лесният начин:
@holidays = Holiday.where(:approver_id => current_user.id, :state => 'requested')
Предполагам, че разработвате на SQLite, но внедрявате на PostgreSQL. Това е лоша идея, винаги разработвайте и внедрявайте на един и същ стек.