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
我正在使用来自 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