Las cadenas SQL estándar usan comillas simples, las comillas dobles son para identificadores (como nombres de tablas y columnas); PostgreSQL sigue el estándar aquí, MySQL y SQLite son menos estrictos, otras bases de datos hacen otras cosas con cantidades variables de rigor. En cualquier caso, las comillas simples para los literales de cadena SQL deberían funcionar igual en todas partes.
Está utilizando comillas dobles en una cadena SQL:
@holidays = Holiday.find(:all, :conditions => 'state = "requested"')
#------------------------------------------------------^---------^
Debe comillas simples:
@holidays = Holiday.find(:all, :conditions => %q{state = 'requested'})
o modernícelo y deje que ActiveRecord se ocupe de las citas:
@holidays = Holiday.where(:state => 'requested')
Probablemente también deba corregir las citas para este:
@holidays = Holiday.find(:all, :conditions => ["approver_id = #{current_user.id}", "state = requested"])
Nuevamente, modernizarlo es la forma más fácil:
@holidays = Holiday.where(:approver_id => current_user.id, :state => 'requested')
Supongo que está desarrollando en SQLite pero implementando en PostgreSQL. Esa es una mala idea, siempre desarrolle e implemente en la misma pila.