【发布时间】:2015-04-24 06:52:56
【问题描述】:
我在 Nitrous.io 上以开发模式测试我的应用程序,在本地主机上运行它。登录以编辑其帐户并上传图像的用户具有管理员角色。但是,当用户尝试从本地计算机/笔记本电脑上传图像文件时,会出现以下错误:
Excon::Errors::Forbidden in UsersController#update
Expected(200) <=> Actual(403 Forbidden) excon.error.response :body => "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>AllAccessDisabled</Code><Message>All access to this object has been disabled</Message><RequestId>982179552F0C4C29</RequestId><HostId>a5RfS52/0VwdIvro6g7kdaeO4OWm3aUrXVIkcKVY5HVuVM6VnRp0m3ksEflo8jxP88fL8/lBExM=</HostId></Error>" :headers => { "Connection" => "close" "Content-Type" => "application/xml" "Date" => "Fri, 24 Apr 2015 05:07:12 GMT" "Server" => "AmazonS3" "x-amz-id-2" => "a5RfS52/0VwdIvro6g7kdaeO4OWm3aUrXVIkcKVY5HVuVM6VnRp0m3ksEflo8jxP88fL8/lBExM=" "x-amz-request-id" => "982179552F0C4C29" } :local_address => "192.168.239.45" :local_port => 35419 :reason_phrase => "Forbidden" :remote_ip => "54.231.13.136" :status => 403
Extracted source (around line #5):
4 def update
5 if current_user.update_attributes(user_params)
6 flash[:notice] = "User information updated"
7 redirect_to edit_user_registration_path
8 else
Request
Parameters:
{"utf8"=>"✓",
"_method"=>"patch",
"authenticity_token"=>"9Gzm2XuPF0s1vQhQZFbeX0xwNQ8v4wx+4K79OSomXEN6ITkvh6hu+/8RmhdiSOOpxUOIiu74S3j0AhS3u/mISQ==",
"user"=>{"name"=>"lacey",
"avatar"=>#<ActionDispatch::Http::UploadedFile:0x007fd26f0d3218 @tempfile=#<Tempfile:/tmp/RackMultipart20150424-2177-dg55wd.jpg>,
@original_filename="snailSign.jpg",
@content_type="image/jpeg",
@headers="Content-Disposition: form-data; name=\"user[avatar]\"; filename=\"snailSign.jpg\"\r\nContent-Type: image/jpeg\r\n">,
"avatar_cache"=>""},
"commit"=>"Update",
"id"=>"16"}
我想知道我是否没有正确设置开发配置,这就是发生这种情况的原因。但是,我想在开发中解决这个问题,然后再尝试部署——所以我养成了良好的习惯。我目前正在学习使用 Rails 进行 Web 开发的学徒计划。
提前致谢!
【问题讨论】:
-
您是否使用 gem 进行上传?
-
@crispychicken 我正在使用这些宝石:carrierwave 和 mini_magick。
-
@crispychicken 我应该补充一点,我错误地写了 Heroku。实际上,我正在使用 Nitrous.io 并从那里运行 Rails 服务器。我很抱歉。