我正在使用seomoz的linkscape-gem来使用他们的api获取数据,而我依次想要在视图中显示数据。 (注意:我也在使用Wicked gem来逐步构建对象)。目前我在我的控制器中有这个:
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 :(得分:3)
有一个拼写错误:您正在将Linkspace::Client.new
实例保存在实例变量@client
中,但是您尝试在名为urlMetrics
的变量上调用client
不知道。
def moz
client = Linkscape::Client.new(:accessID => "accessID", :secret => "secret")
@response = client.urlMetrics("http://example.com", :cols => :all)
return @response
end
希望它有所帮助! :)
答案 1 :(得分: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"+@linkscape) %>
如果您的值为空,则表示if条件设置为false且您的@linkscape未获取值