Rails 4: 不允许的参数
Rails 4: Unpermitted parameter
我有一张模型图片,我用网络摄像头拍照并保存。我用carrierwave上传图片,用gem生成图片 carrrierwave-data-uri 图片由ajax
发送
我的 PicturesController.rb 上的函数是:
def upload_image
photo = params[:picture][:photo]
@picture = Picture.new(picture_params)
@picture.user_id = current_user.id
@picture.photo = photo
@picture.save
end
private
def set_picture
@picture = Picture.find(params[:id])
end
def picture_params
params.require(:picture).permit(:photo, :comment, :user_id )
end
end
我的Ajax
function save_photo() {
Webcam.snap( function(data_uri) {
$.ajax({
type: 'POST',
url: '/pictures/upload',
async: true,
data: { picture: {photo: data_uri} }
})
.done(function () {
console.log(photo);
});
Webcam.reset();
} );
}
当我发送图像时,它在数据库中注册,但不是图像。我收到控制台错误:
不允许的参数:图像
但是如果我在强参数上添加参数 :image,我会得到 Completed 500 Internal Server Error
数据 uri 打印在我的控制台上,但我无法将其放入 图像 变量
感谢帮助!
允许 image
时出现 500 内部服务器错误,因为模型中没有 image
属性。你有 photo
,所以你应该使用它作为参数在 ajax
方法中发送 data_uri
。
将 AJAX 调用中的 image
更改为 photo
:
data: { picture: { photo: data_uri } }
也像这样更改您的控制器方法:
def upload_image
@picture = Picture.new(picture_params)
@picture.user_id = current_user.id
@picture.save
end
我有一张模型图片,我用网络摄像头拍照并保存。我用carrierwave上传图片,用gem生成图片 carrrierwave-data-uri 图片由ajax
发送我的 PicturesController.rb 上的函数是:
def upload_image
photo = params[:picture][:photo]
@picture = Picture.new(picture_params)
@picture.user_id = current_user.id
@picture.photo = photo
@picture.save
end
private
def set_picture
@picture = Picture.find(params[:id])
end
def picture_params
params.require(:picture).permit(:photo, :comment, :user_id )
end
end
我的Ajax
function save_photo() {
Webcam.snap( function(data_uri) {
$.ajax({
type: 'POST',
url: '/pictures/upload',
async: true,
data: { picture: {photo: data_uri} }
})
.done(function () {
console.log(photo);
});
Webcam.reset();
} );
}
当我发送图像时,它在数据库中注册,但不是图像。我收到控制台错误:
不允许的参数:图像
但是如果我在强参数上添加参数 :image,我会得到 Completed 500 Internal Server Error
数据 uri 打印在我的控制台上,但我无法将其放入 图像 变量
感谢帮助!
允许 image
时出现 500 内部服务器错误,因为模型中没有 image
属性。你有 photo
,所以你应该使用它作为参数在 ajax
方法中发送 data_uri
。
将 AJAX 调用中的 image
更改为 photo
:
data: { picture: { photo: data_uri } }
也像这样更改您的控制器方法:
def upload_image
@picture = Picture.new(picture_params)
@picture.user_id = current_user.id
@picture.save
end