2012-05-05 4 views
0

У меня есть пользовательская модель для моего приложения, и она эффективно использовала has_secure_password до этого момента. has_secure_password требует колонки password_digest, и здесь моя недавняя проблема.Password_Digest имеет проблемы при добавлении новых столбцов

Я хотел создать столбец «role» строки типа, который отделяет админов от пользователей, но после миграции мой password_digest получил повреждение, так что я получаю недопустимую хэш-ошибку всякий раз, когда пытаюсь использовать ее в своем приложении. В MySQL все нормально (то password_digest значения не изменились), но в рельсах консоли значение, возвращенное User.first.password_digest что-то вдоль линий:

 
\#BigDecimal:59d0c60,'0.0',9(18) 

Кроме того, если я не изменить тип роли из строки, его (аналогично , это абсолютно нормально в mysql). Откат миграции и избавление от столбца «role» приводит к тому, что password_digest возвращается к нормальному состоянию до консоли рельсов.

Что здесь происходит?

Вот моя схема базы данных: Database schema

Вот результат SQL запроса подается непосредственно в MySQL: MySQL query

Вот результат того же самого запроса через рельсы (первый раз): Rails query

Вот результат того же запроса через рельсы (после первого раза): Rails query2

+0

Я не считаю, что кто-то может отлаживать вашу ситуацию из вашего описания в одиночку ... просто недостаточно контекста, не видя определений кода и таблиц. –

ответ

0

Похоже, что ваш запрос автоматически объясняется. См. Документацию здесь http://guides.rubyonrails.org/active_record_querying.html#automatic-explain

+0

Если это проблема, я не уверен, куда поместить Base.silence_auto_explain ... она идет в файл? –

+0

Я думаю, что самое главное, чтобы узнать здесь, почему автоматическое объяснение запускается. Я убежден, что было изменено что-то большее, чем просто схема базы данных. Я согласен с Джимом Гаррисоном, нет информации для кого-то, чтобы отладить вашу проблему. –