在模型中执行保存是否理想



哪里是执行保存的最佳方式。我创建了一个记录器方法,它将记录管理员用户所做的一切。

def log(params_here={})
   initialized_model = Model.new(with_proper_parameters_here)
   initialized_model.save
end

我在想是把这个放到model还是放到lib上。所以问题是,把这种方法放在model上理想吗?或者我会把它放在lib上?当我在model/lib上做这件事时,原因/优点/缺点是什么?

更新:

我还发现了以下内容,但这并不能满足我的问题。

  1. Rails3:保存模型的最佳实践
  2. https://www.toptal.com/ruby-on-rails/top-10-mistakes-that-rails-programmers-make

这看起来不像一个模型,所以在models目录中确实没有位置。如果它是一个负责构建模型的外部实用程序,那么lib将是一个很好的位置,尽管我也会避免在全局命名空间中定义它,尤其是对于像log这样的常用术语。我也有点困惑为什么这个方法被称为log,因为它似乎没有做任何日志记录。

就我个人而言,我会把它放在lib中,或者更可能把它包装在一个构建器对象中,这个构建器对象可能与我经常在app/services中声明的其他服务对象一起使用。如果没有更多关于如何、在哪里以及为什么使用它的上下文,很难说。

为什么不简化呢?

def log(params_here={})
   Model.create(with_proper_parameters_here)
end

相关内容