ActiveModel :: ForbiddenAttributesError в UserController # register - PullRequest
1 голос
/ 08 октября 2019

Я пытаюсь зарегистрировать пользователей на моем сайте rails. Когда я нажимаю кнопку регистрации на странице регистрации, это выглядит так:

ActiveModel :: ForbiddenAttributesError в UserController # register ActiveModel :: ForbiddenAttributesError

Вот коддля моего user_controller.rb файла:

class UserController < ApplicationController
  def index
    @title = "RailsSpace User Hub"
  end

  def register
    @title = "Register"
    if request.post? and params[:user]
      @user = User.new(params[:user])
    end
    if @user.save
      flash[:notice] = "User #{@user.screen_name} created!"
      redirect_to :action => "index"
    end
  end
end

Он жалуется на строку 11: @user = User.new(params[:user]) Я следую коду из книги, поэтому я не знаю, что с ним не так. У кого-нибудь есть предложения? Заранее спасибо за вашу помощь.

1 Ответ

0 голосов
/ 09 октября 2019

Вы должны использовать сильные параметры .

Пользовательский контроллер должен выглядеть следующим образом:

class UserController < ApplicationController
  def index
    @title = "RailsSpace User Hub"
  end

  def register
    @title = "Register"
    if request.post? and params[:user]
      @user = User.new(user_params)
    end
    if @user.save
      flash[:notice] = "User #{@user.screen_name} created!"
      redirect_to :action => "index"
    end
  end

  private

  def user_params
    # Add the user attributes that you sent with post (form) to the permit method.
    params.require(:user).permit(:name, :screen_name)
  end
end
...