ActiveModel::ForbiddenAttributesError Ror4

Обновление старого приложения rails до 4.2.10. Я использую Волшебство Gem. Приложение отлично работало в RoR 3.2.8

Строка 45 ---> @user = User.new(params[:user])

Извлеченный источник (около строки № 45):

      # POST /users.json
       def create
        @user = User.new(params[:user])

         respond_to do |format|
          if @user.save



  # PUT /users/1
  # PUT /users/1.json
  def update
   @user = User.find(params[:id])

    respond_to do |format|
      if @user.update_attributes(params[:user])
        format.html { redirect_to @user, notice: 'User was successfully updated.' }
        format.json { head :no_content }
      else
        format.html { render action: "edit" }
        format.json { render json: @user.errors, status: :unprocessable_entity }
      end
    end

метод def create

def create
       @user = User.new(params[:user])

        respond_to do |format|
          if @user.save
            format.html { render action: "thanks", notice: 'User was 
    successfully created.' }
            format.json { render json: @user, status: :created, 
location: @user }
          else
             format.html { render action: "new" }
             format.json { render json: @user.errors, status: 
 :unprocessable_entity }
         end
        end
      end

1 ответ

Решение

В рельсах 4 или позже вам нужно использовать сильный параметр, как показано ниже

def permit_user_params
  params.require(:user).permit(:name, :email, :etc)
end

и использовать этот разрешенный параметр как

def create
       @user = User.new(permit_user_params)

        respond_to do |format|
          if @user.save
            format.html { render action: "thanks", notice: 'User was 
    successfully created.' }
            format.json { render json: @user, status: :created, 
location: @user }
          else
             format.html { render action: "new" }
             format.json { render json: @user.errors, status: 
 :unprocessable_entity }
         end
        end
      end

Надеюсь, это поможет вам.

Другие вопросы по тегам