环境:Ubuntu 的环境,用的是默认 root 的用户
问题:在提交含头像图片的个人资料更新时,是出现如下错误。代码实现是参考 ruby-china 的。 现象: (1)如果仅仅修改资料,不同时添加图片,提交更新是可以成功的。 (2)如果 add 头像就出现问题。 参考了一下历史帖子说有可能是外链的问题,但是用的是阿里云主机,没有开启或者禁止外链说法。 还是 gravatar 需要申请账号或者配置什么东西?
Processing by AccountController#update as HTML
Parameters: {"utf8"=>"?", "authenticity_token"=>"[FILTERED]", "user"=>{"name"=>"les", "avatar"=>#<ActionDispatch::Http::UploadedFile:0x000000076f89a0 @tempfile=#<Tempfile:/tmp/RackMultipart20140317-1459-1f99a9g>, @original_filename="caulin.jpg",, ........., "tagline"=>"Make your life a story worth telling", "bio"=>"目前}, "commit"=>"更新资料"}
Completed 500 Internal Server Error in 2036ms
RestClient::Unauthorized (401 Unauthorized):
app/models/user.rb:211:in `update_with_password'
app/controllers/account_controller.rb:10:in `update
各位高手帮忙解释一下,给点思路,谢谢!
补充用一下关联代码:account_controller.rb:10
1 # coding: utf-8
2 class AccountController < Devise::RegistrationsController..
3 def edit
4 @user = current_user
5 # 首次生成用户 Token
6 @user.update_private_token if @user.private_token.blank?
7 end
8
9 def update
10 super
11 end
会不会是 params={}的问题?
205 def update_with_password(params={})
206 if !params[:current_password].blank? or !params[:password].blank? or !params[:password_confirmation].blank?
207 super
208 else
209 params.delete(:current_password)
210 self.update_without_password(params)
211 end
212 end