0

我正在尝试在以下代码中将 Faraday 与 Rails 4 一起用于 Google API Oauth:

class GoogleApisController < ApplicationController

    def oauth2callback
        require 'faraday'
        render layout: false

        conn = Faraday.new(:url => 'https://accounts.google.com',:ssl => {:verify => false}) do |faraday|
            faraday.request  :url_encoded
            faraday.response :logger
            faraday.adapter  Faraday.default_adapter
        end

        @result = conn.post '/o/oauth2/token', {'code' => params[:code],
            'client_id' => "some_id",
            'client_secret' => "some_secret",
            'redirect_uri' => "some_redirect_uri",
            'grant_type' => 'authorization_code'}

    end
end

但是当我这样做时@result.body.inspect,它不会返回任何东西。

所以@result 返回 nil 并且似乎根本没有处理。

但是,当我尝试上面的代码时,liveshell它似乎可以工作。

发生这种情况有原因吗?

4

1 回答 1

0

如果您render在实例化您尝试的对象之前尝试这样做render,则模板中实际上不会包含任何内容。将render语句移动到方法的底部将解决这个问题。

于 2014-01-12T12:56:52.613 回答