【发布时间】:2012-03-17 03:56:13
【问题描述】:
我在 Rails 中遇到了一个奇怪的错误,我正在制作一个用户可以登录和上传文件的应用程序。一切正常,但是当我想上传任何文件时,我的应用程序控制器中用于检查活动会话的代码会失败,因为它无法访问会话数组:
def current_user
if session[:session].nil? # <- Fails here
redirect_to "/login"
else
if session[:hash] == Digest::SHA512.hexdigest(session[:password]+" - "+session[:username]+" - "+session[:uuid]) #< and here (removing the other if) with NoMethodError
return 0
else
redirect_to "/login"
end
end
end
这适用于其他事情,但显然会在 POST 请求上中断。这是我上传文件的 HAML 视图:
%b Upload
%form{:action=>"/u",:method=>"post",:enctype=>"multipart/form-data"}
%br
%input{:type=>"file",:name=>"file"}
%input{:type=>"submit",:value=>"Upload"}
我做错了什么?同样在 POST 请求中,我在应用程序日志中获得:WARNING: Can't verify CSRF token authenticity
【问题讨论】:
标签: ruby-on-rails ruby post request csrf