2014-04-28 66 views
2

我使用seomoz的linkscape-gem來使用它們的api獲取數據,我希望這些數據可以在視圖中顯示。 (注意:我也使用邪惡的寶石來逐步構建對象)。目前,我有這個在我的控制器:Rails 4 - 使用Moz API顯示視圖中的信息

def update 
    @bid = Bid.find(params[:bid_id]) 
    @linkscape = moz if step == steps.second 
    @bid.attributes = build_params 
    render_wizard @bid 
end 

def moz 
    @client = Linkscape::Client.new(:accessID => "accessID", :secret => "secret") 
    @response = client.urlMetrics("http://example.com", :cols => :all) 
    return @response 
end 

在我看來:

<%= debug(@linkscape) %> 

沒有在視圖中的調試部分顯示出來,所以我如果1)我使用不正確的語法疑惑2)錯誤地訪問API信息(我創建了一個Moz賬戶並生成訪問ID和密鑰,並且正在使用它們)3)誤解如何在視圖中顯示控制器變量或4)其他內容。

+0

你應該閱讀這個http://nofail.de/2013/10/debugging-rails-applications-in-development/ – phoet

+0

@phoet謝謝你 鏈接。那裏有一些好的實踐和工具,但沒有什麼能夠回答我的問題。當我檢查日誌時,我沒有遇到任何錯誤或問題。 – Jordan

+0

@Jordy看到我的答案。讓我知道它是否有效。 – uday

回答

3

有一個錯字:要保存一個實例變量@clientLinkspace::Client.new實例,但您要撥打urlMetrics在名爲client變量,它不知道的想法。

def moz 
    client = Linkscape::Client.new(:accessID => "accessID", :secret => "secret") 
    @response = client.urlMetrics("http://example.com", :cols => :all) 
    return @response 
end 

希望它有幫助! :)

1

爲了讓記錄器工作並獲得響應,您必須首先更正錯誤錯誤,即@response分配應該更改爲@client而不是客戶端。

def moz 
    @client = Linkscape::Client.new(:accessID => "accessID", :secret => "secret") 
    @response = @client.urlMetrics("http://example.com", :cols => :all) 
    return @response 
end 

然後在視圖中,您可以使用兩種方式打印他的值。首先是使用

Rails.logger.debug("My object: #{@linkscape.inspect}") 

並查看開發日誌來查看結果

或使用你自己的方式

<%= debug(" Linkscape Value"[email protected]) %> 

如果你的價值是未來空,那麼就意味着,如果條件設置爲假和你的@linkscape沒有得到值