设置简单的令牌检查后,会在会话栏上弹出
TypeError(不会将Symbol隐式转换为Integer)
app / controllers / sessions_controller.rb:21:in'verify_token'
关于此方法
所以,正如我检查的那样。
有人知道为什么这种方法会发生这种情况吗?
def verify_token
@current_user = User.find_by(auth_token: request.headers['token'] [:auth_token])
if @current_user
render json: {message:"verified", status: 200}
else
render_unauthorized("Token failed verification")
end
end
答案 0 :(得分:1)
问题是`request.headers ['token']可能包含字符串。
这样做的时候
request.headers['token'] [:auth_token]
您正在字符串上运行[]
方法,如果该方法包含整数,则允许该方法。
'carrot'[2]
=> 'r'
但是如果您改用符号则不允许这样做,因为它不能自动将符号转换为整数(无隐式转换)
可能就足够了...
@current_user = User.find_by(auth_token: request.headers['token'])