关于lib目录的问题。
使用lib目录有哪些好方法?
什么时候应该在app / models或app / helpers上使用?
并且有些相关如何让Rails 3包含lib目录中的文件?
由于
答案 0 :(得分:25)
lib目录(我最常使用它)的一个用途是在模型之间共享代码以保持DRY。例如,如果要在许多不同模型上定义tag_tokens
属性以用于tokenizer输入,可以将其放在“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)