Что значит много?
Данная конструкция призвана перенести контроль над доступными для массового редактирования параметры из модели в контроллер. Ибо там ему и место.
Работает она следующим образом. params - на самом деле не обычный хеш, а объект определенного класса. Когда модель в качестве параметров получает подобный объект, она запрашивает у него список аттрибутов, которые можно редактировать.
К примеру:
params = { user: { email: 'mail@example.com', password: '123' } }
если вы хотите, чтобы можно было редактировать только email, лежащий внутри хеша с пользователем, то пишите:
params.require(:user).permit(:email)
.
В том случае, если вы принимаете в качестве параметра массив:
params.permit(:some_hash).require(some_array: [])