Rails Twitter 全局配置

Rails Twitter config global

我正在使用来自 plataformatec 的 Twitter Gem from sferik and Devise Gem

如果我很了解这个过程,我是这样做的:当用户使用他的 Twitter 帐户登录时,我将他的令牌和 token_secret 存储在数据库中,这样我就可以这样做:

@client = Twitter::REST::Client.new do |config|
  config.consumer_key    = "MY_KEY"
  config.consumer_secret = "MY_SECRET"
  config.access_token        = current_user.token
  config.access_token_secret = current_user.token_secret
end

所以每个用户都有不同的 config.access_token(_secret) @client

我的问题是让 Twitter 客户端在每个控制器中全局可用的最佳方法是什么但仅当用户登录时

我不能把它放在 config/initializers 因为 config.access_token(_secret) 还没有设置...

感谢您的澄清。

其实解决方法很简单...

刚刚在我的 ApplicationController 中添加了一个 before_action 并检查用户是否登录。

class ApplicationController < ActionController::Base
  before_action :set_twitter_client

  private

  def set_twitter_client
    if user_signed_in?
      @client = Twitter::REST::Client.new do |config|
        config.consumer_key    = "MY_KEY"
        config.consumer_secret = "MY_SECRET"
        config.access_token        = current_user.token
        config.access_token_secret = current_user.token_secret
      end
    end
  end

end