sql >> Database teknologi >  >> RDS >> PostgreSQL

Heroku - ActiveRecord::StatementInvalid (PG::Fejl:FEJL:søgte kolonne findes ikke

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.




  1. Hvordan tager jeg højde for manglende xPaths og holder mine data ensartede, når jeg skraber et websted ved hjælp af DOMXPath-forespørgselsmetoden?

  2. Implementer sidesøgning (spring over / tag) funktionalitet med denne forespørgsel

  3. Alvorlige problemer med MySQL-forespørgslens ydeevne efter tilføjelse af betingelse

  4. Hent poster fra én tabel, hvor der ikke er en post i en anden