我一直在关注上一个问题中提供的解决方案:
从 Controller 中的 application.rb 访问配置(Rails 3)
但首先将其应用于 Facebook 设置。
我首先创建了 facebook 配置文件:
#lib/facebook_config.rb
module FacebookConfig
def self.config
@@config ||= {}
end
def self.config=(hash)
@@config = hash
end
结尾
并定义了我的 YAML 文件,然后对其进行了初始化。
#config/facebook.yml
development:
app_id = "id"
app_secret = "secret"
test:
app_id = "id"
app_secret = "secret"
production:
app_id = "id"
app_secret = "secret"
和
#config/intializers/01.facebook_config.rb
require './lib/facebook_config'
FacebookConfig.config = YAML.load_file("config/facebook.yml")[Rails.env]
并像这样定义omniauth配置:
#config/initializers/omniauth.rb
Rails.application.config.middleware.use OmniAuth::Builder do
# The following is for facebook
provider :facebook, FacebookConfig.config[:app_id], FacebookConfig.config[:app_secret], {:scope => 'email, read_stream, read_friendlists, friends_likes, friends_status, offline_access'}
end
但是,当我在开发模式下进行测试时,在启动 webrick 服务器时出现以下错误:
config/initializers/omniauth.rb:3:in `[]': can't convert Symbol into Integer (TypeError)
我想在访问配置文件时它应该是一个字符串而不是一个符号?
感谢您的任何提示。