rails 3 команда find не работает с базой данных postgresql - PullRequest
2 голосов
/ 11 марта 2011

Я использую ruby ​​1.9.2 и rails 3 с базой данных postgresql 8.4.

У меня есть следующий код рельсов.

@playersonline = Member.find(:all, :conditions => ["loggedIn = ?", true] )

И я получаю следующую ошибку при обнаружении линии:

PGError: ERROR:  column "loggedin" does not exist

Глядя на запрос, который он генерирует, он показывает следующее:

SELECT     "members".* FROM       "members"  WHERE     (loggedIn = 't')

Столбец loggedIn существует в моей таблице и имеет логический тип данных.

Еще одна странная вещь, когда я пытаюсь запросить только столбец loggedIn через браузер sql, я получаю ту же ошибку? то есть выбрать залогиненный из членов

Спасибо

1 Ответ

4 голосов
/ 11 марта 2011

Postgres по умолчанию чувствителен к регистру , поэтому loggedIn отличается от loggedin. Хотя вы можете переопределить его, соглашение Rails гласит, что части имен переменных разделяются подчеркиванием.

Я бы не рекомендовал заново изобретать колесо. Зайдите и измените имя столбца (и любые другие столбцы, которые следуют за вашей нотацией), вам может потребоваться logged_in. Это предотвратит любые более странные ошибки.

...