在代码中间需要有优势吗?

时间:2016-02-05 10:12:15

标签: ruby-on-rails ruby load

仅在必要时加载Ruby文件,我在项目中执行了此操作:

XController ...
  ...
  if(!user.last_ip_country_id || user.last_login > Date.today - 1.week)
    require 'ip_to_country.rb'

考虑Ruby on Rails如何运行,这样做有意义吗?它应该在顶部吗?或者,仅在需要时(例如延迟加载)需要文件是否有任何优势?

1 个答案:

答案 0 :(得分:0)

如果代码的这一部分在开始时执行一次,那么这样做是有意义的。事实上,有真实的代码可以做到这一点。典型的例子是根据您的环境需要不同的gems或本地文件。

当要加载的文件有自己的名称空间而不与代码的其他部分交互时,您可以在代码中的任意位置进行延迟加载。

否则,即如果在使用过程中反复执行该部分代码并且要加载的文件可能与其余代码交互(例如通过猴子修补常见类),则不是一个好主意这样做是因为如果代码在特定时间加载到代码中间,那么考虑代码与gem的交互会更加困难。