Rails与服务中的数据库交互

时间:2016-08-02 09:53:46

标签: ruby-on-rails service models

今天我和同事谈话了。我们讨论了服务中的数据库交互如果需要在创建之前完成一些复杂的逻辑(操作),那么在服务中创建一些表行是一个好习惯,如:

class UserService
  def create(some_params)
    some_attributes = ...
    # some logic before creation
    ...
    User.create(some_attributes)
  end
end

他说服务应该只在创建之前准备数据,并且应该在这样的模型中调用:

class User < ActiveRecord::Base
  def self.prepare_and_create(params)
    result = UserPreparationService.new(params).prepare
    create(result)
  end
end

您能否回答一下哪种方式正确或更好?

0 个答案:

没有答案