ActionController::UnfilteredParameters (невозможно преобразовать неразрешенные параметры в хеш) - Rails 5

у меня есть эта ошибка, но не совсем уверен, как ее решить. У меня есть модуль версии API, и мой модуль usercontroller выглядит так

class Api::V1::UsersController < ApplicationController
  def register
    ap params
  end

  def user_params
    params.require(:user).permit(
      :email, :password,:password_confirmation, :username, :name, :fb_id, :picture, :access_token, :reset_password_token,
      :sign_in_count, :authenticatable_salt, :current_sign_in_at, :last_sign_in_at, :current_sign_in_ip, :last_sign_in_ip
    )
  end
end

У меня есть функция регистрации, и каждый раз, когда я хочу зарегистрировать параметры, я получаю сообщение об ошибке.

ActionController::UnfilteredParameters (невозможно преобразовать неразрешенные параметры в хэш)

Не уверен, как решить эту проблему, учитывая, что я уже разрешил атрибуты для своей пользовательской модели.

Я не включил драгоценный камень strong_parameters, но не уверен, что должен, потому что не думаю, что должен его включать.

Я знаю, что разрешение атрибутов сработало бы для Rails 4, но не знаю, почему это не работает для Rails 5. Нужно ли мне что-то делать и с моей моделью?


person Kingsley Simon    schedule 29.05.2017    source источник
comment
Посмотрите, поможет ли вам этот ответ: stackoverflow.com/a/34951198/755421   -  person bitsapien    schedule 29.05.2017


Ответы (1)


Вы создали метод user_params, но в действии register используете params (то есть нефильтрованные параметры).

Итак, измените это:

def register
  ap params
end

к этому:

def register
  ap user_params
end
person Gerry    schedule 29.05.2017
comment
что делает ap? - person oskrgg; 21.01.2020
comment
@OscarGonzalez Должен быть жемчужиной Awesome Print. - person Gerry; 21.01.2020