所以我试图在Rails应用程序中显示当前的facebook共享计数。尝试在我的Rails应用程序中抓取当前URL时,我不断收到“无法将字符串转换为文本”错误。
如果我输入类似facebook_shares(“http://www.google.com”)的代码,代码就有效 如果我使用facebook_shares代码不起作用(“#{request.protocol}#{request.host_with_port}#{request.fullpath}”)
不确定如何解决此问题
这是我目前的代码......
helper.rb:
def facebook_shares(url)
data = Net::HTTP.get(URI.parse("http://graph.facebook.com/?ids=#{URI.escape(url)}"))
data = JSON.parse(data)
data[url]['shares']
end
view.html.erb:
<% current_url = "#{request.protocol}#{request.host_with_port}#{request.fullpath}" %>
<%= facebook_shares(current_url) %>
当我运行这个时,我得到一个“无法将字符串转换为整数”错误。如果我执行以下代码,它会起作用:
<% current_url = "http://www.google.com" %>
<%= facebook_shares(current_url) %>
超级失落......
答案 0 :(得分:0)
data[url]['shares']
部分是可疑的。 Eithere data[url]
为您提供数组,当您在该数组上尝试['shares']
时,您会收到错误,这很明显。或者data
本身就是一些东西......因此data[url]
会抛出错误。因此,首先检查数据的外观。由于Array#[]
不允许[]
内的字符串,因此出现此错误。请参阅以下演示代码:
arr = [1,2]
arr['foo']
# ~> -:2:in `[]': no implicit conversion of String into Integer (TypeError)
# ~> from -:2:in `<main>'
答案 1 :(得分:0)
我明白了。这是我自己的可怕疏忽:p。
我正在开发在本地服务器上运行,所以我正在使用localhost:3000 / something。
推动此功能并在生产中运行该功能正常。对不起大家,但感谢您的帮助!