关于lib目录的问题。
使用lib目录的好习惯是什么?
何时应该使用它而不是app/models或app/helpers?
另外,如何让Rails 3包含来自lib目录的文件?
谢谢
关于lib目录的问题。
使用lib目录的好习惯是什么?
何时应该使用它而不是app/models或app/helpers?
另外,如何让Rails 3包含来自lib目录的文件?
谢谢
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)