2014-02-17 5 views
1

Это то, что я получаю при регистрации: Unpermitted parameters: password_confirmation WARNING: Can't mass-assign protected attributes for User: email, password Я установил все и пытаюсь разобраться в первый раз. Я создал модельного пользователя, и все должно быть плавным. Это новая установка регистрации первого пользователя. Код по умолчанию не изменен. Пожалуйста, помогите!Devise 3 Rails 4 Неотвеченные параметры

ПРОБЛЕМА РЕШИТЬ: Я добавил attr_accessible к моей user.rb модели

+0

ли вы перезапустить 'рельсы server' после установки изобрести? –

+1

около 50 раз с тех пор, как я установил программу. – user3222947

+0

Можете ли вы перечислить шаги, которые вы выполнили после установки 'devise' gem? Как и вы запустили «rails generate devise: install», а затем создайте модель разработки. –

ответ

4

Проверьте модель пользователя и посмотрите, доступны ли параметры.

Имейте в виду, что вам не нужно, чтобы назвать их, IE моя модель пользователя выглядит следующим образом с завещанию 3 и рельсов 4:

class User < ActiveRecord::Base 
    # Include default devise modules. Others available are: 
    # :confirmable, :lockable, :timeoutable and :omniauthable 
    devise :database_authenticatable, :registerable, 
     :recoverable, :rememberable, :trackable, :validatable, :confirmable 

    validate :username, presence: true, uniqueness: true, format: { with: /[a-zA-Z0-9]{4,20}/ } 
end 

Решение Рахул говорит о не имеет особого смысла, поскольку эти parametters уже разрешены по запросам, но в моем случае, у меня есть дополнительный атрибут имени пользователя для этой модели пользователя, поэтому я добавил к ApplicationController:

before_filter :configure_permitted_parameters, if: :devise_controller? 

    protected 
    def configure_permitted_parameters 
    devise_parameter_sanitizer.for(:account_update) << :username 
    devise_parameter_sanitizer.for(:sign_up) << :username 
    end 
+0

спасибо, попробуй сейчас – user3222947

+0

без изменений @maltray извините – user3222947

+0

devise должно быть простым. Я лучше начинаю проверку подлинности с нуля! – user3222947

1

надстройкой следующее в вашем ApplicationController (если у вас Rails4)

before_filter :update_sanitized_params, if: :devise_controller? 

# method to sanitized params for devise user sign up 
def update_sanitized_params 
    devise_parameter_sanitizer.for(:sign_up) {|u| u.permit(:email,:password, :password_confirmation)} 
end 

для получения дополнительной информации см https://github.com/plataformatec/devise#getting-started "Сильные Parameters" раздел

+0

извините, без изменений! невероятно .. это забирает меня весь день. Я много читал об этом и не могу его сортировать. – user3222947

+0

Знаете ли вы, почему это происходит? – user3222947

+0

Вы создаете запись с помощью своего собственного контроллера или с помощью контроллера регистрации по умолчанию? ..? –

0

Если кто-то получает эту ошибку еще, проверьте путь формы URL-адрес , Я скопировал session_path в форму, которая должна была использовать путь registration_path.

-1

Я делаю свое первое использование Devise GEM (в настоящее время изучает рельсы) с этим упражнением. В моем случае у меня была такая же ошибка, и это была проблема маршрутизации.

Вопрос был на form_for в new.index.html.erb папки Соображениях devise/registrations.

Форма была URL: session_path(resource_name), но для того, чтобы работать он должен указывать на registration_path(resource_name).

Я изменил это и теперь он работает над героку.

This является ссылкой на файл.

И это упражнение жить на Heroku: devise.muga.com.co

+1

Если у вас есть новый вопрос, обратитесь к нему, нажав кнопку [Ask Question] (http://stackoverflow.com/questions/ask). Включите ссылку на этот вопрос, если это поможет обеспечить контекст. – Jeeped

+0

Jeeped, как вы можете видеть, это ответ, а не вопрос. Спасибо Райну за то, что он стал короче. – muygrafico

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