Ruby on rails ActionController::ParameterMissing(param缺失或值为空:item):
我已经编写了一个android应用程序,可以从用户那里拍摄个人资料图片。现在我想把这些个人资料图片上传到我的RubyonRail服务器上。但是上传不起作用。我收到错误消息:Ruby on rails ActionController::ParameterMissing(param缺失或值为空:item):,ruby-on-rails,file-upload,Ruby On Rails,File Upload,我已经编写了一个android应用程序,可以从用户那里拍摄个人资料图片。现在我想把这些个人资料图片上传到我的RubyonRail服务器上。但是上传不起作用。我收到错误消息: app/controllers/items_controller.rb:55:in `item_params' app/controllers/items_controller.rb:21:in `create' Started POST "/items" for 192.168.3.7 at 2016-
app/controllers/items_controller.rb:55:in `item_params'
app/controllers/items_controller.rb:21:in `create'
Started POST "/items" for 192.168.3.7 at 2016-09-11 01:12:21 +0900
Processing by ItemsController#create as HTML
Parameters: {"image"=>#<ActionDispatch::Http::UploadedFile:0x5737110 @tempfile=#<Tempfile:C:/Users/Clemens/AppData/Local/Temp/RackMultipart20160911-2
8624-1vjbftr.jpg>, @original_filename="IMG_20160911_010525.jpg", @content_type="application/octet-stream", @headers="Content-Disposition: form-data; na
me=\"image\"; filename=\"IMG_20160911_010525.jpg\"\r\nContent-Type: application/octet-stream\r\nContent-Transfer-Encoding: binary\r\n">}
Completed 400 Bad Request in 0ms (ActiveRecord: 0.0ms)
ActionController::ParameterMissing (param is missing or the value is empty: item):
app/controllers/items_controller.rb:55:in `item_params'
app/controllers/items_controller.rb:21:in `create'
但是,我仍然得到相同的错误。发生的是这一行:
params.require(:item).permit(:name, :description, :picture)
如果参数中没有项,将引发异常。当您发送到创建操作时,显然您没有项目。我还假设,当您看到这个错误时,您没有对该行进行注释 现在发生的是这一行:
params.require(:item).permit(:name, :description, :picture)
如果参数中没有项,将引发异常。当您发送到创建操作时,显然您没有项目。我还假设,当您看到这个错误时,您没有对该行进行注释
params.require(:item).permit(:name,:description,:picture)
为什么这条消息被注释掉了?我很确定他看到错误消息时不是这样的!:)params.require(:item).permit(:name,:description,:picture)
为什么这条消息被注释掉了?我很确定他看到错误消息时不是这样的!:)你的假设是对的。在我对这个错误感到惊讶之后,我把这行注释掉了,因为我只发送了一个图像,而不是一个名称或描述。所以我需要重命名我从android应用程序发送的图像,称之为“项目”,问题就解决了?我将图像重命名为“项目”,请参阅我文章中的更新。我的参数仍然有问题。我不知道RubyonRails如何使用android发送的参数。我不知道该做什么项目和项目不一样。您可以发送一个名为item的参数,该参数有三个字段:name、:description和:picture。item上的任何附加字段或任何未调用item的参数都是直接的。它与item一起工作。我现在可以上传图片了。我收到了“完成201”的信息。现在是下一步:如何在RubyonRails中访问此项?我真的不知道你通过调用@item来访问它。如果我帮了你,请把我的答案记为正确!你的假设是对的。在我对这个错误感到惊讶之后,我把这行注释掉了,因为我只发送了一个图像,而不是一个名称或描述。所以我需要重命名我从android应用程序发送的图像,称之为“项目”,问题就解决了?我将图像重命名为“项目”,请参阅我文章中的更新。我的参数仍然有问题。我不知道RubyonRails如何使用android发送的参数。我不知道该做什么项目和项目不一样。您可以发送一个名为item的参数,该参数有三个字段:name、:description和:picture。item上的任何附加字段或任何未调用item的参数都是直接的。它与item一起工作。我现在可以上传图片了。我收到了“完成201”的信息。现在是下一步:如何在RubyonRails中访问此项?我真的不知道你通过调用@item来访问它。如果我帮了你,请把我的答案记为正确!
json.extract! @item, :locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :ruby, :jbuilder]
params.require(:item).permit(:name, :description, :picture)