我正在使用Twitter Gem。
我的模特:
class TweetyClass
def initialize
@client = Twitter::REST::Client.new do |config|
config.consumer_key = TWITTER_CONFIG['consumer_key']
config.consumer_secret = TWITTER_CONFIG['consumer_secret']
config.access_token = TWITTER_CONFIG['access_token']
config.access_token_secret = TWITTER_CONFIG['access_token_secret']
end
end
def user_timeline
@client.user_timeline( count: 2)
end
end
我的控制器:
def tweets
@tweets = TweetyClass.new.user_timeline
end
我的观点:
<% @tweets.each do |tweet| %>
<li><%= tweet.foo%></li>
<% end %>
有没有办法缓存结果,所以每次调用 user_timeline 时,它都会从app / app变量中获取结果,而不是转到Twitter并获取推文的时间轴。
如果我没有使用正确的术语,请道歉;我是缓存主题的新手。基本上我想要做的是提高我的应用程序的速度,似乎减慢它的一件事是使用user_timeline方法检索推文所花费的时间。我假设它是因为它每次都从Twitter检索这个,我认为缓存可能会有所帮助。
答案 0 :(得分:3)
是的,您可以使用memcached进行操作,但必须先设置环境。
1)安装memcached
sudo apt-get install memcached (ubuntu)
brew install memcached (mac os x)
2)将dalli添加到=&gt;的Gemfile
gem 'dalli'
3)改变环境/ development.rb
config.action_controller.perform_caching = true
4)最后是your_controller.rb
@tweets = Rails.cache.fetch("your_unique_cache_key_name") do
TweetyClass.new.user_timeline
end
您可以从this教程中了解更多信息。