Я создаю Rails API и пытаюсь получить массив через запрос post.На POSTMAN мой запрос:
{
"user": {
"email": "testuser2@gmail.com",
"first_name": "Joao Paulo",
"last_name": "Furtado Silva",
"city_id": 384,
"province_id": 2,
"cuisines": [17,5,2],
"password":"123456",
"password_confirmation":"123456"
}
}
На модели пользователя:
validates :first_name, :last_name, :city_id, :province_id, :cuisines, :password, :password_confirmation, :presence => true
И на User_controller:
def user_params
params.require(:user).permit(:email, :first_name, :last_name, :city_id, :province_id, :password, :password_confirmation, :cuisines)
end
Даже если я передам свой массив кухоньк бэкэнду, Rails не распознает это.В качестве ответа API он говорит:
{
"status": "Error",
"message": [
"Cuisines can't be blank"
]
}
Что я здесь не так делаю?
Если я уберу :cuisines
из проверки, он будет работать нормально.Но я не должен этого делать.Каков наилучший способ решения этой проблемы?
РЕШЕНИЕ SO FAR:
Я удалил :cuisines
автоматическую проверку из Rails и проверил ее вручную в простом коде, таком как:
#validate cuisines
@cuisines = params.require(:user)[:cuisines] #it comes in array format
if @cuisines.empty?
render json: {
status: 'Error',
message: 'User cuisines are empty',
}, status: :precondition_failed
return false
end
Если у кого-то есть лучшее решение, пожалуйста, напишите.