Разработать параметр Sanitizer "For" Метод не найден Rails 5

devise ruby-on-rails-5

1778 просмотра

2 ответа

20 Репутация автора

Я только что добавил разработку в свое блестящее новое приложение Rails 5. Все хорошо, пока я не попытаюсь добавить имя пользователя в модель пользователя Devise. Все работало, пока я не запустил его и не перешел на localhost: 3000 / users / sign_up , где меня встретила эта ошибка:

undefined method `for' for #<Devise::ParameterSanitizer:0x007fa0dc31c1b0> Did you mean? fork

Я искал в замечательном месте Google любые результаты, только из-за устаревших ошибок и решений в Rails 4, то же самое с поиском самого переполнения стека. Я не могу заставить себя найти рабочее решение. Я был бы очень признателен за помощь. Вот как я подготовился к этому:

  1. Создайте миграцию: rails generate migration add_username_to_users username:string:uniq
  2. Перенос базы данных rake db:migrate
  3. Добавить строгие параметры в контроллер приложения devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(..) }
  4. Добавьте параметры имени пользователя в представления Devise
  5. Перезагрузите сервер

Что-то я пропустил или сделал не так?

Автор: Tavin Turner Источник Размещён: 19.07.2016 02:23

Ответы (2)


3 плюса

625 Репутация автора

Решение

Метод .for устарел, из версии 4.1+ доступен метод .permit

Попробуйте .permit.это должно работать.

devise_parameter_sanitizer.permit(:my_action) { |u| u.permit(..) }

Надеюсь, что это поможет вам :)

Автор: rohin-arka Размещён: 19.07.2016 05:27

0 плюса

1067 Репутация автора

Проблема была хорошо упомянута @Shadow, но этот синтаксис работал для меня:

def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:sign_up, keys: [:first_name, :last_name, :email])
    devise_parameter_sanitizer.permit(:account_update, keys: [:first_name, :last_name, :phone, :email, bank_attributes:
     [:bank_name, :bank_account]])   
end
Автор: Aboozar Rajabi Размещён: 11.12.2016 03:32
Вопросы из категории :
32x32