将以下逻辑放在rails web app中的正确位置在哪里?
从rake任务或控制器(我还没有决定),我想生成并保存到数据库中的特定模型的负载。这一代逻辑将非常复杂,我希望它可以单元测试。考虑到所有这些,感觉rails希望我将这些代码放入我的代码生成的类型的模型类中,但由于它是特定于用例的,因此感觉很奇怪。
答案 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