Rails изменил регистр столбцов при выполнении запроса с датой - PullRequest
0 голосов
/ 10 ноября 2018

Я использую Rails и пытаюсь получить разные даты из моей таблицы Echeancier и столбца ech_dtDate .

Мой запрос:

 @dates = Echeancier.where('ech_dtDate BETWEEN ? AND ?',@dateCurrent.beginning_of_month,@dateCurrent.end_of_month).uniq.pluck(:ech_dtDate)

У меня следующая ошибка:

PG::UndefinedColumn: ERROR: column "ech_dtdate" does not exist LINE 1: ...heanciers"."ech_dtDate" FROM "echeanciers" WHERE (ech_dtDate... ^ HINT: Perhaps you meant to reference the column "echeanciers.ech_dtDate". : SELECT DISTINCT "echeanciers"."ech_dtDate" FROM "echeanciers" WHERE (ech_dtDate BETWEEN '2018-10-31 23:00:00.000000' AND '2018-11-30 22:59:59.999999')

Почему Rails изменил столбец ech_dtDate на ech_dtdate? Есть идеи?

Спасибо

1 Ответ

0 голосов
/ 10 ноября 2018

Обычно в отношении соглашений о рельсах , имена столбцов должны быть в l owercase и snake_case . Возможно, вы получаете сообщение об ошибке, так как имя столбца ech_dtDate противоречит соглашениям об именах, которым следует rails. У вас есть два варианта.

Вариант № 1:

Попробуйте переименовать имя столбца с помощью миграции, выполнив следующие шаги.

1) Создать файл миграции

rails g migration FixColumnName

2) Откройте файл и добавьте

rename_column :echeanciers, :ech_dtDate, :ech_dtdate

и сохраните файл.

3) Запустите rake db:migrate в терминале.

Вариант № 2:

Добавьте следующую строку в Echeancier модель.

alias_attribute :ech_dtdate, :ech_dtDate

и тебе пора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...