2014-01-12 14 views
0

我想在下面的代碼使用法拉第使用Rails 4谷歌API的Oauth:法拉第不工作on Rails的

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它不返回任何東西。

So @result返回零,似乎並沒有處理。

但是,當我嘗試liveshell上述代碼似乎工作。

這是發生這種情況的原因嗎?

+0

我認爲它是因爲您在實際執行任何操作之前正在渲染模板。如果你將'render'移到最後一個語句中,它是否工作? – Eugene

+0

剛剛在我的一個rails應用程序中進行了確認。如果在創建'@ result'對象之前渲染,則模板不會呈現任何內容。 – Eugene

+0

@Eugene你是對的!請把這個答案,以便我可以接受它!非常感謝! –

回答

0

如果您在嘗試執行render實例化對象之前嘗試使用render,則該模板實際上不會包含任何內容。將render語句移到該方法的底部將解決該問題。