Сильное требование params - PullRequest
0 голосов
/ 17 мая 2018

Учитывая эти сильные параметры:

def image_params
  params.require(:image).permit(:data, :x, :y, :width, :height)
end

Что именно должно быть :image?Я отправляю это из моего внешнего интерфейса примерно так:

updateImage: function (e) {
    e.preventDefault()
    var formData = new FormData()
    formData.append(`x`, this.crop_x)
    formData.append(`y`, this.crop_y)
    formData.append(`width`, this.crop_width)
    formData.append(`height`, this.crop_height)
    formData.append(`image`, this.imageID)
    this.$http.patch(`/articles/${this.id}/images/${this.imageID}`, formData)
}

Здесь предполагается, что :image должно быть идентификатором типа 16.

1 Ответ

0 голосов
/ 17 мая 2018

При использовании strong_params вы не обязательно указываете тип данных, вы просто устанавливаете правила, для которых атрибуты являются обязательными, а какие разрешены,

В вашем примере imageявляется обязательным атрибутом, и если он отсутствует в параметрах, вы получите ошибку, и с permit для :data, :x, :y, :width, :height вы внесете их в белый список, говоря, что они безопасны для использования или пропуска.

Вместо добавления, возможно, вы захотите создать его следующим образом:

{image: {data: '', x: '', y: '', width: '', height: ''}}

Надеюсь, это поможет

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