【发布时间】:2011-12-05 21:52:30
【问题描述】:
关于lib目录的问题。
使用 lib 目录有哪些好的做法?
什么时候应该在 app/models 或 app/helpers 上使用它?
还有一些相关的是如何让 Rails 3 包含 lib 目录中的文件?
谢谢
【问题讨论】:
标签: ruby-on-rails model-view-controller require
关于lib目录的问题。
使用 lib 目录有哪些好的做法?
什么时候应该在 app/models 或 app/helpers 上使用它?
还有一些相关的是如何让 Rails 3 包含 lib 目录中的文件?
谢谢
【问题讨论】:
标签: ruby-on-rails model-view-controller require
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)
【讨论】: