我在哪里将我的代码放在rails web app中

时间:2014-03-17 18:51:35

标签: ruby-on-rails

将以下逻辑放在rails web app中的正确位置在哪里?

从rake任务或控制器(我还没有决定),我想生成并保存到数据库中的特定模型的负载。这一代逻辑将非常复杂,我希望它可以单元测试。考虑到所有这些,感觉rails希望我将这些代码放入我的代码生成的类型的模型类中,但由于它是特定于用例的,因此感觉很奇怪。

1 个答案:

答案 0 :(得分:2)

  

考虑到所有这些,感觉rails希望我将这些代码放入我的代码生成的类型的模型类中,但是因为它特定于用例,所以感觉很奇怪。

这听起来是使用服务对象的一个​​很好的理由。这通常会在lib /中组织。 E.g。

class MyLoadObjectService
  def load(params)
    # a bunch of logic to munge params into attribs
    MyLoadModel.create attribs
  end
end

然后在你的控制器中调用它:

def my_action
  MyLoadObjectService.new.load(params)
end