Это сильный параметр в Ruby на рельсах.
Это запрещает использование параметров Action Controller в массовом назначении Active Model до тех пор, пока они не будут явно перечислены.
Например, если в запросе отправляется атрибут местоположения и если вы не разрешаете * Параметр 1007 * в требовании, параметр location
будет запрещен, а params
запретит этот атрибут.
Как и следующий запрос в json
{
"user": {
"name" : "johnny dep",
"location" : "hollywood"
}
}
со следующим кодом в контроллере
params.require(:user).permit(:name)
Теперь это запретит атрибут местоположения. Проще говоря, это защитит ваш код rails от страшного мира inte rnet, где злоумышленники могут попытаться отправить дополнительные атрибуты на сервер rails.
Другой пример, если ваш запрос в json выглядит следующим образом
{
"user": {
"name": "johnny dep",
"email": "johnny@gmail.com",
"qualification": {
"name": "bachelor in arts",
"college": "trinity"
}
}
}
Ваш контроллер может разрешить дополнительные параметры для квалификации, используя следующий код
params.require(:user).permit(:name, :email, qualification: [:name, :college])