在Rails 4中加载自定义类

时间:2013-08-28 09:15:35

标签: ruby-on-rails ruby ruby-on-rails-4

我正在重写一个旧的应用程序--Rails 1.2.6 :)) - 完全在Rails 4中...所以你可以想象信息过载。

到目前为止情况相当顺利,但我目前正在努力完成一项非常明显的任务,但缺乏适当的文档,并且有太多的博客对此问题有不同的解决方案。

我有一个自定义文本转换功能的自定义类(使用Redcloth,autolinker,Sanitize等),我们称之为Textilize类。它用于模型和控制器,所以我想最好的解决方案是从它创建一个宝石。我想稍后攻击gem创建,因为它只是一个简单的单文件类。

所以现在我只是将textilize.rb文件添加到/ lib目录并添加了config.autoload_paths += %W(#{config.root}/lib)

它工作正常,我现在可以在应用程序中使用它,而不需要它在模型和控制器中。

这是Rails 4中的一个好习惯吗?它是线程安全的吗? 如果没有,有没有办法重构它而不创建一个完整的宝石呢?

谢谢!

1 个答案:

答案 0 :(得分:1)

“这是一个好习惯吗?”我想是的。

“它是线程安全的吗?”我不知道

还有其他方式吗?如果lib跨越模型和控制器,我将使用您的解决方案,并且它很简单。如果它变得相当复杂,我将创建一个插件。如果它很复杂并且可以扩展为对其他应用程序有用,我将创建一个gem。