【发布时间】:2014-07-22 20:00:42
【问题描述】:
我在调用 Update 方法时收到以下错误。
ActionController::UnknownFormat (ActionController::UnknownFormat):
app/controllers/devise/custom/registrations_controller.rb:21:in `update_avatar'
这是有问题的控制器:
class Devise::Custom::RegistrationsController < Devise::RegistrationsController
respond_to :html, :js
def update_avatar
@user = current_user
if @user.update(user_params)
respond_to do |format|
format.js { render 'update_avatar'}
flash[:notice] = "Updated user"
end
else
render 'edit'
end
end
protected
def user_params
params.require(:user).permit(:avatar)
end
end
奇怪的是,我在其他控制器上使用这种方法没有任何问题,但在这里它落在了 respond_to 线上。
谁能解释一下?谢谢!
日志
由 Devise::Custom::RegistrationsController#update_avatar 处理为 参数:{"utf8"=>"✓", "remotipart_submitted"=>"true", "authenticity_token"=>"reTaOwTtvbI+IPYq1nvLWl0blVOmaSu/o5VpfGziguo=", "X-Requested-With"=>"IFrame", "X-Http-Accept"=>"text/javascript, 应用程序/javascript,应用程序/ecmascript, 应用程序/x-ecmascript, /; q=0.01", "用户"=>{"头像"=>#, @original_filename="translate.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"user[avatar]\"; filename=\"translate.jpg\"\r\nContent-Type: image/jpeg\r\n">}}
【问题讨论】:
-
您可以查看您的日志并添加处理该操作的前几行输出吗?它应该类似于我的日志
Processing LessonsController#online_xml [GET]\n Parameters: {"id"=>"57978"}中的这个示例 -
谢谢,我已经安装了。它正在上传文件并保存到数据库,只是不处理 format.js 来调用我的 ajax 请求。
-
也许由于某种原因它被作为 html 请求处理?尝试添加
format.html { raise 'We got an HTML request'} -
嗯,不——也不这样做。我在想可能与它是自定义设计控制器这一事实有关?虽然看不出它对这个有什么影响......
标签: ruby-on-rails ruby-on-rails-4