Ответ 1
попробуйте использовать ветку rails4
gem 'devise', github: 'plataformatec/devise', branch: 'rails4'
Я использую программу для аутентификации пользователей. Однако, когда пользователь пытается создать учетную запись, я получаю эту ошибку:
NameError (undefined local variable or method `devise_parameter_sanitizer'
Это то, что выглядит мой контроллер регистрации приложений:
def sign_up_params
devise_parameter_sanitizer.for(:sign_up)
end
Любые идеи?
Заранее спасибо
попробуйте использовать ветку rails4
gem 'devise', github: 'plataformatec/devise', branch: 'rails4'
Посмотрев на открытые проблемы с Github, я нашел это: https://github.com/plataformatec/devise/issues/2372 - похоже, делает трюк для меня. обратите внимание, что это, вероятно, проблема с рельсами 4.
Для всех, кто попадает сюда с ошибкой
undefined method `<<' for {}:ActionController::Parameters
вам нужно перейти на Devise 3.1.0.rc, как в этот комментарий
что в основном означает использование версии основной ветки
gem 'devise', git: 'git://github.com/plataformatec/devise.git'
Надеюсь, я помогу потерянным душам, поскольку я был на протяжении последних получаса. Последний выпущенный Gem for Devise на момент написания статьи - 2.2.4. Это не включает метод devise_parameter_sanitizer
, следовательно, вы видите ошибку.
Возможно, вы следуете руководству для Devise на https://github.com/plataformatec/devise. Недавно был добавлен раздел о Rails 4 и сильных параметрах.
У вас есть несколько вариантов:
Получите последнюю главную версию Devise с помощью bundler, так что доступен метод devise_parameter_sanitizer
:
gem 'devise', :git => 'git://github.com/plataformatec/devise.git'
Не применяйте ActiveModel::ForbiddenAttributesProtection
к своей модели пользователя, поэтому сильные параметры даже не используются. Подробнее здесь: Разработка и сильные параметры
Переопределите требуемые контроллеры Devise напрямую. См. Здесь: https://gist.github.com/kazpsp/3350730