2013-07-08 3 views
7

У меня есть приложение для рельсов 4 с использованием утилиты. Я пытаюсь разрешить пользователям иметь имя пользователя, связанное с ними.Добавление имени пользователя для разработки рельсов 4

Я добавил столбец имя пользователя (строка) в таблицу Users, и был мой Application контроллера выглядеть следующим образом:

class ApplicationController < ActionController::Base 

    before_filter :configure_permitted_parameters, if: :devise_controller? 
    protect_from_forgery with: :exception 
    protected 
    def configure_permitted_parameters 
     devise_parameter_sanitizer.for(:sign_in) { |u| u.permit(:username, :email) } 
    end 

end 

, и я также добавил поле для имени пользователя на пользователях/sign_up.

Но я получаю эту ошибку:

undefined local variable or method `devise_parameter_sanitizer' for #<Devise::RegistrationsController:0x00000101378a28> 

Так в основном мой вопрос, почему появляется эта ошибка, или, как еще я могу получить пользователь, чтобы получить имя пользователя?

Спасибо за помощь!

ответ

16

Вы разрешаете только имя пользователя, разрешаемое по методу знака, но я предполагаю, что при создании нового пользователя он находится на методе регистрации. Так что попробуйте это:

def configure_permitted_parameters 
    devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:username, :email, :password, :password_confirmation) } 
end 

Источник: https://github.com/plataformatec/devise#strong-parameters

+0

спасибо, что работал. – infinity

+1

Я делаю это в своем application_controller, и я могу зарегистрироваться и войти (сразу после регистрации). Но я не могу войти в систему со страницы входа. У меня есть ключ входа/аутентификации для имени пользователя, и у меня есть поля имени пользователя и пароля в базе данных. Любые подсказки? Вот более подробная версия моей проблемы - http://stackoverflow.com/questions/18804971/devise-rails-4-not-able-to-login –

Смежные вопросы