出于某种原因,我的一个参数(文件上传)总是为零。以下是显示的异常页面中的params哈希:
{"utf8"=>"✓",
"_method"=>"put",
...
"avatar"=>#<ActionDispatch::Http::UploadedFile:0x007fe7fa1dd460 @original_filename="rp.jpg",
@content_type="image/jpeg",
@headers="Content-Disposition: form-data; name=\"user[avatar]\"; filename=\"rp.jpg\"\r\nContent-Type: image/jpeg\r\n",
@tempfile=#<File:/var/folders/44/xrz6nqg91_l_gzmhxt8s771c0000gn/T/RackMultipart20111107-12870-nguhuw>>},
"commit"=>"Update",
"id"=>"1"}
在我的控制器中,我有if params["avatar"]
,但是头像总是返回零。
答案 0 :(得分:4)
avatar
可能嵌套在另一个元素中。通过省略重要的细节,我们无法分辨,但我可以告诉你的转储在}
开头的行上有一个不平衡@tempfile
,所以很可能匹配{
在 "avatar"=>
之前出现,因此它嵌套在另一个哈希中。
您可以尝试使用params[:user][:avatar]
或类似模型的实际名称。