Ошибка в Rails Tutorial (Hartl) - раздел 7 - «неизвестный атрибут: пароль» - PullRequest
4 голосов
/ 28 марта 2011

Я искал эту проблему на форуме и использовал решение на сайте spork для удаления «--drb» из опций спецификации, загрузил и запустил его, но эта постоянная ошибка продолжает появляться. Я также управлял этим без spork. Я прочел много информации о rspec и, как было сказано, выкопал информацию о spork, но пока ничего. Я также проверил проверки на опечатки, отступы, кодирование ... и все еще в растерянности. Другие проблемы, я был в состоянии решить, но этот получил меня. Вот это ниже, если у кого-нибудь есть предложение:

Неудачи:

1) Шифрование пароля пользователя has_password? метод должен быть ложным, если пароли не совпадают Ошибка / Ошибка: @user = User.create! (@ Attr) ActiveRecord :: UnknownAttributeError: неизвестный атрибут: пароль # ./spec/models/user_spec.rb:94:in `блок (3 уровня) в '

Завершено за 0,836 секунды. 1 пример, 1 сбой <- Ведомый (1) бег!

Ответы [ 3 ]

8 голосов
/ 28 марта 2011

Вы уверены, что добавили: пароль в качестве виртуального атрибута в вашей модели пользователя? Это легко пропустить, но вам нужно включить строку

attr_accessor :password
0 голосов
/ 01 марта 2013

Обязательно измените attr_accessible на attr_accessor в models/user.rb

Я сделал ту же ошибку и упустил из виду.

0 голосов
/ 19 февраля 2013

Возможно, что это изменилось между моментом, когда был задан вопрос (2011) и сейчас, но я изначально столкнулся с той же проблемой - я добавил все тесты для пароля и т. Д., И сама инициализация пользователя была сбой по всем направлениям с «неизвестным атрибутом: пароль».

На первый взгляд, ответ GrahamJRoy (и, что более важно, последующий комментарий к проработке) полностью устранил мое замешательство.

Однако я продолжил читать следующий раздел учебника и узнал, что следующая строка в модели User подразумевает то же самое:

has_secure_password

Как только я добавил это, мне больше не нужно явное объявление attr_accessor:

attr_accessor :password, :password_confirmation

Моя единственная жалоба, связанная с этим учебником, заключается в том, что Майкл не предупреждает вас, что ВСЕ ваши пользовательские ссылки начнут давать сбой, если вы добавите: password и: password_confirmation в User.new (), когда в учебном пособии впервые будет показана обновленный конструктор. Я ожидал, что только новые тесты не пройдут, подумал, что я не в курсе, и поэтому искал решение в другом месте (например, здесь), прежде чем продолжить обучение.

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