javascript - 强大的参数要求
问题描述
鉴于这些强大的参数:
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
.
解决方案
使用strong_params时,您不必指定数据类型,您只是在设置哪些属性是强制性的,哪些是允许的,
在您的示例中,image
是一个必需的属性,如果参数中缺少它,您将收到一个错误,并且permit
您:data, :x, :y, :width, :height
将它们列入白名单,以便说明它们可以安全使用或通过。
您可能希望以这种方式创建它,而不是进行附加,
{image: {data: '', x: '', y: '', width: '', height: ''}}
希望这可以帮助
推荐阅读
- firebase - 由于更新到 firebase-functions 2.0.5,无法部署功能
- bash - bash 从文件中删除文本块
- reactjs - 状态更改后组件未更新
- javascript - Ant Design - 过滤后如何获取表格行数?
- android - 如何在不知道列表总大小的情况下使用 PagedList 占位符
- php - 为什么我的 PHP/HTML 表单没有向我发送数据
- java - 将字符串解析为日期时间不会返回正确的时间
- android - 在我的应用程序中获取权限时获取空数组
- python - 如何在熊猫中选择可变数量的列匹配的行?
- java - 如何在不连接到电子邮件服务器的情况下创建空 IMAPMessage?