У меня есть модель пользователя со следующими атрибутами, продавцом и 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