在Rails中使用Facebook api时,无法将Pathname转换为String

use*_*378 4 facebook ruby-on-rails-3.1

我们正在尝试使用ruby on rails构建一个facebook应用程序.

我们设置了一个画布应用程序并且能够通过画布看到我们的应用程序,但是当我们尝试集成ruby facebook api时,每当我们尝试发出用户数据请求时,我们都会收到"无法将路径名转换为字符串"错误.

到目前为止,我们尝试了2种不同的api(考拉和休息图)并得到了相同的结果.

我甚至从koala api示例项目下载了一个工作项目

并得到了同样的错误.我不确定它是否是rails错误,或者因为我们正在尝试使用rails的localhost:3000来运行它

我有一个以前的ssl错误,不得不在config/initializers下添加此代码来解决这个问题

require 'open-uri'
require 'net/https'

module Net
  class HTTP
    alias_method :original_use_ssl=, :use_ssl=

    def use_ssl=(flag)
      self.ca_file = Rails.root.join('lib/ca-bundle.crt')
      self.verify_mode = OpenSSL::SSL::VERIFY_PEER
      self.original_use_ssl = flag
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

小智 8

问题是

self.ca_file
Run Code Online (Sandbox Code Playgroud)

期待一个String,而你发送一个路径名.更换:

Rails.root.join('lib/ca-bundle.crt')
Run Code Online (Sandbox Code Playgroud)

有:

Rails.root.join('lib/ca-bundle.crt').to_s
Run Code Online (Sandbox Code Playgroud)

它应该工作