Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Rails 4:不允许的参数_Javascript_Ruby On Rails_Ruby_Ajax_Data Uri - Fatal编程技术网

Javascript Rails 4:不允许的参数

Javascript Rails 4:不允许的参数,javascript,ruby-on-rails,ruby,ajax,data-uri,Javascript,Ruby On Rails,Ruby,Ajax,Data Uri,我有一张模型照片,我用网络摄像头拍照并保存它。我用carrierwave上传图像,并用gem生成图像。图像由ajax发送 my PicturesController.rb上的函数是: def upload_image photo = params[:picture][:photo] @picture = Picture.new(picture_params) @picture.user_id = current_user.id @picture.photo

我有一张模型照片,我用网络摄像头拍照并保存它。我用carrierwave上传图像,并用gem生成图像。图像由ajax发送

my 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();

  } );
}
当我发送图像时,它在数据库中注册,但不是图像。我发现控制台错误:

不允许的参数:图像

但是如果我在我的strong参数上添加参数:image,我会得到已完成的500个内部服务器错误

数据uri打印在我的控制台上,但我不能将其放入图像变量中


谢谢你的帮助

由于模型中没有
image
属性,因此在允许
image
时会出现500个内部服务器错误。您使用的是
photo
,因此您应该使用它作为
ajax
方法中发送
data\u 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

data\u uri=params[:image]
。请尝试
params[:picture][:image]
。此外,由于图像不在强参数中,因此会出现未经允许的参数错误。我不知道您是否有图片模型的图像属性。这一定是
内部服务器错误的原因。
。谢谢,但同样的错误。我做了:data:{picture:{photo:data_uri}}但是photo值为空[“photo”,nil]当我这样做时,我没有得到参数错误,但是photo值在控制台中为空:[[“photo”,nil]你能在你的
ajax
方法中调试,看看在发出请求时
data\u uri
是否有值吗?是的,我这样做了。值在那里。我也在rails控制台上调试,使用puts。但是当我执行@picture.photo=photo时,值仍然为空。你是否也在控制器方法中进行了更改?它工作,不再得到错误,但是n I do@picture.photo=photo,photo值为空[“photo”,nil]