Rails lib目录

29

关于lib目录的问题。

使用lib目录的好习惯是什么?
何时应该使用它而不是app/models或app/helpers?
另外,如何让Rails 3包含来自lib目录的文件?

谢谢

1个回答

29

lib目录的一个用途(我最常使用的方式)是共享代码以保持DRY。例如,如果您正在为许多不同的模型定义tag_tokens属性以用于标记符输入,您可以将其放在“tag_accessor.rb”或其他位置,放置在/lib中,然后使用include TagAccessor进行包含。Ruby文件可能如下所示:

module TagAccessor
  def tag_tokens
    tags.map(&:name).join(',')
  end

  def tag_tokens=(names)
    self.tag_ids = names.split(",").uniq
  end
end

(这是我其中一个应用程序的示例,所以它很具体)。然后要在Rails 3中加载/lib文件夹,请将以下代码放置在您的application.rb中:

 config.autoload_paths += %W(#{config.root}/lib)

嗨@bricker,假设我需要编写税收计算器,将税收计算相关任务放在/lib文件夹中是否更好,例如/lib/damp_tax/tax_calculator.rb,并将tax_calculator.rb中的内容作为模块DampTax; class TaxCalculator; end; end; - codemilan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接