Rails 库目录

Posted

技术标签:

【中文标题】Rails 库目录【英文标题】:Rails lib directory 【发布时间】:2011-12-05 21:52:30 【问题描述】:

关于lib目录的问题。

使用 lib 目录有哪些好的做法? 什么时候应该在 app/models 或 app/helpers 上使用它? 还有一些相关的是如何让 Rails 3 包含 lib 目录中的文件?

谢谢

【问题讨论】:

【参考方案1】:

lib 目录的一个用途(我最常使用它的方式)是在模型之间共享代码以保持 DRY。例如,如果您在许多不同的模型上定义tag_tokens 属性以用于标记器输入,您可以将其放入“tag_accessor.rb”或其他内容中,将其放入/lib',然后将其包含在@ 987654323@。 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;类税计算器;结尾;结束;

以上是关于Rails 库目录的主要内容,如果未能解决你的问题,请参考以下文章

Rails:在 lib 目录中记录代码?

Rails 库包括

Rails 3 在子目录中运行,找不到资产

1000 个小时学会 Rails (目录)

`/home/webapp` 不是目录 - Elastic Beanstalk (RAILS)

Rails.root 在 Resque 作业期间指向生产中的错误目录