Devise не обновляет все настраиваемые поля в модели User - PullRequest
0 голосов
/ 05 марта 2019

У меня есть модель пользователя со следующими атрибутами, продавцом и estado (статусом).

t.string "estado", default: "pending"
t.boolean "seller", default: false

У меня есть некоторые проверки для модели User:

validates :seller, default: false
validates :estado, inclusion: { in: %w(Accepted),
      message: "Status application: %{value}" }

Я настраиваю устройство (при регистрации контроллера, метод create), пытаясь обновить эти поля из-за других условий. Для продавца это работает, для Estado это не

Вот доказательство:

[4] pry(#<Users::RegistrationsController>)> resource.estado = "Accepted"
=> "Accepted"
[5] pry(#<Users::RegistrationsController>)> resource
=> #<User id: nil, email: "vendedor1@mail.com", created_at: nil, updated_at: nil, shop_id: nil, seller: true, first_name: nil, last_name: nil, birthday: nil, nationality: nil, document_type: nil, document_number: nil, expiring_date: nil, estado: "pending", admin: false>
[6] pry(#<Users::RegistrationsController>)> resource.seller = false
=> false
[7] pry(#<Users::RegistrationsController>)> resource
=> #<User id: nil, email: "vendedor1@mail.com", created_at: nil, updated_at: nil, shop_id: nil, seller: false, first_name: nil, last_name: nil, birthday: nil, nationality: nil, document_type: nil, document_number: nil, expiring_date: nil, estado: "pending", admin: false>

Почему не обновляется значение estado? Я вижу это в консоли, но когда я проверяю ресурс, он все еще ожидает.

Я мог бы разрешить атрибутам комментировать это, как предполагает первый комментарий:

  # protected

  # If you have extra params to permit, append them to the sanitizer.
  # def configure_sign_up_params
  #   devise_parameter_sanitizer.permit(:sign_up, keys: [:attribute])
  # end

  # If you have extra params to permit, append them to the sanitizer.
  # def configure_account_update_params
  #   devise_parameter_sanitizer.permit(:account_update, keys: [:attribute])
  # end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...