2011-09-27 66 views
0

在我的Rails 3.1应用程序中。我有几个控制器调用这个代码块:我应该把它变成一个模块吗?

twitter_entertainment_users = Rails.cache.fetch('twitter_entertainment_users', :expires_in => 24.hours) do 
    begin 
    Timeout.timeout(10.seconds) do 
     Twitter.suggestions('entertainment') 
     puts "#{Twitter.rate_limit_status.remaining_hits.to_s} Twitter API request(s) remaining this hour" 
    end 
    rescue Twitter::NotFound 
    end 
end 

而不是重新输入这个代码块到处。我应该在模块中使用这个吗?即让事情保持干爽?

如果是这样,该去哪里?我读了一些关于将模块代码放入app/concerns/foobar.rb的地方。

还有其他方法吗?寻找建议/文章。

回答

0

总是最好不要重复你的代码。这样,当你改变某些东西时,你只需要在一个地方做到这一点。 (并且相信我 - 你不想这样做五次,然后只希望你没有错过任何东西。)

把它放在一个所有控制器都可以访问它的地方。考虑为所有可能需要的帮助器方法创建一个模块(或一个文件夹)并将它们保存在一个地方。这样你总是知道在哪里看。

相关问题