0

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

到目前为止进展顺利,但我目前正在努力完成一项应该非常明显的任务,但它缺乏适当的文档,并且有太多博客针对这个问题提供不同的解决方案。

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

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

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

这是 Rails 4 中的一个好习惯吗?它是线程安全的吗?如果没有,现在有没有办法在不创建完整 gem 的情况下对其进行重构?

谢谢!

4

1 回答 1

1

“这是个好习惯吗?” 我觉得是这样的。

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

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

于 2013-08-28T09:26:02.830 回答