我正在重写一个旧的应用程序--Rails 1.2.6 :)) - 完全在Rails 4中...所以你可以想象信息过载。
到目前为止情况相当顺利,但我目前正在努力完成一项非常明显的任务,但缺乏适当的文档,并且有太多的博客对此问题有不同的解决方案。
我有一个自定义文本转换功能的自定义类(使用Redcloth,autolinker,Sanitize等),我们称之为Textilize
类。它用于模型和控制器,所以我想最好的解决方案是从它创建一个宝石。我想稍后攻击gem创建,因为它只是一个简单的单文件类。
所以现在我只是将textilize.rb
文件添加到/ lib目录并添加了config.autoload_paths += %W(#{config.root}/lib)
。
它工作正常,我现在可以在应用程序中使用它,而不需要它在模型和控制器中。
这是Rails 4中的一个好习惯吗?它是线程安全的吗? 如果没有,有没有办法重构它而不创建一个完整的宝石呢?
谢谢!
答案 0 :(得分:1)
“这是一个好习惯吗?”我想是的。
“它是线程安全的吗?”我不知道
还有其他方式吗?如果lib跨越模型和控制器,我将使用您的解决方案,并且它很简单。如果它变得相当复杂,我将创建一个插件。如果它很复杂并且可以扩展为对其他应用程序有用,我将创建一个gem。