def create req = ActiveSupport::JSON.decode(request.body) if user = User.authenticate(req["email"], req["password"]) session[:user_id] = user.id render :json => "{\"r\": \"t\"}" + req else render :json => "{\"r\": \"f\"}" end end
‘create’方法在控制器中并映射到“ / login”,我正在设置正确的内容类型并接受来自curl客户端的标头。我一直都收到422 http状态响应。
有什么建议?
如果您发送的是正确的标题,则不需要执行“ ActiveSupport :: JSON.decode”-rails会为您完成。
您需要在帖子中设置以下标题。
Content-Type: application/json Accept: application/json
422表示不可处理实体-通常表示验证失败。
您应该能够拥有。如果不能,则说明标题设置不正确。
def create if user = User.authenticate(params["email"], params["password"]) session[:user_id] = user.id render :json => "{\"r\": \"t\"}" + req else render :json => "{\"r\": \"f\"}" end end