Rails Params: требуется ключ, затем разрешить массив хэшей - PullRequest
0 голосов
/ 13 марта 2019

Может кто-нибудь помочь мне понять, как требовать и разрешать набор параметров, который выглядит следующим образом:

<ActionController::Parameters { 
    "people"=>[
      {"id"=>"1", "first"=>"Jane", "last"=>"Doe"},
      {"id"=>"2", "first"=>"John", "last"=>"Doe"}
    ]
} permitted: false>

Данные готовятся в Javascript с этим:

const formData = new FormData()
people.forEach(person => {
    formData.append('people[][id]', person.id)
    formData.append('people[][first]', person.first)
    formData.append('people[][last]', person.last)
})

Я пробовал несколько разных форматов (есть ли более Railsish способ структурировать это?), И много разных входов, чтобы позволить без удачи. Моя текущая попытка

params.require(:people).each { |person| person.permit(:id, :first, :last) }

Это не дает сбоя, но, похоже, на самом деле ничего не разрешает.

Я также пытался настроить свои данные с помощью people[][person][id], чтобы я мог сделать

params.require(:people).permit(person: [:id, :first, :last]) 

но это тоже не сработало.

1 Ответ

1 голос
/ 13 марта 2019
params.require(:people)
params.permit(people: [:id, :first, :last])

Первая строка - просто вызвать ошибку, если ключ отсутствует. .permit(people: [:id, :first, :last]) разрешает использование ключа пользователя и массива хэшей с ключами :id, :first, :last.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...