Rails TypeError (без неявного преобразования Symbol в Integer) в строке - PullRequest
0 голосов
/ 06 сентября 2018

После установки простая проверка токенов на рельсах сеанса выдает эту

TypeError (без неявного преобразования Symbol в Integer)

app / controllers / session_controller.rb: 21: в `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

1 Ответ

0 голосов
/ 06 сентября 2018

Проблема в том, что `request.headers ['token'], вероятно, содержит строку.

Когда вы делаете

request.headers['token'] [:auth_token]

Вы используете метод [] для строки, который разрешается, если он содержит целое число.

'carrot'[2]
=> 'r'

Но это не разрешено, если вы используете символ вместо этого, так как он не может автоматически конвертировать символ в целое число (без неявного преобразования)

Вероятно, было бы достаточно сделать ...

@current_user = User.find_by(auth_token: request.headers['token'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...