Я не совсем уверен, что происходит, когда я отправляю запрос на свой API-интерфейс rails, но у меня получается какое-то странное поколение данных.Rails автоматическая генерация «Create» hash в параметрах
Когда я сгенерировал Model
и Controller
и сделал сетевые запросы для создания этого объекта с помощью JSON, я напишу строку JSON, которая содержит только параметры для создания в корне хэша. Затем я создаю его так:
Model.new(params[:model])
Для меня это было странно, потому что я никогда не посылал хеш с ключом «модель», при этом я не обернуть мои параметры хэш с ключом «модели».
Когда я просматриваю параметры для сетевого вызова, я вижу хэш со всеми моими параметрами, точно так же, как я их отправил, но хеш параметров теперь включает в себя, по-видимому, автоматически генерируемый хэш с ключом «модель» и значение - это мой исходный хэш.
Для меня это означает, что Rails генерирует это в какой-то момент. Однако, похоже, он работал нормально, поэтому я не слишком беспокоился.
Проблема в том, что у меня теперь есть другой API с Model
, но он не генерирует внутренний хэш автоматически. Затем я попытался просто использовать params
на моем Model
, но он жалуется:
ActiveModel::MassAssignmentSecurity::Error (Can't mass-assign protected attributes: format, controller, action):
Я не уверен, что происходит вообще, или как это исправить, кроме задания параметров по отдельности, а не пропускании params
хэш непосредственно или обертывание моего исходного сетевого вызова с помощью хэша model
.
Что происходит?
К сожалению, у меня есть это для обеих моделей. Я могу использовать любой другой общий метод в общем формате, кроме create, так как он не генерирует дополнительный хэш. – RileyE
Можете ли вы вставить первую строку журнала консоли разработки рельсов, которая содержит все атрибуты, переданные в запросе? –
Вы не предоставили образец кода из формы, которую вы отправляете ... –