我应该在模型或控制器中定义导出吗?

时间:2011-05-04 19:12:12

标签: ruby-on-rails model-view-controller

我有一个需要导出数据的Rails应用。数据导出是一项复杂的操作,可创建包含各种模型信息的外部数据库。我目前将数据导出例程编写为单独的rake任务,现在我也希望将它们公开给用户。

我无法弄清楚是否要创建一个包含导出所有逻辑的模型,因此本质上该模型将表示单个导出实例,或者我应该将该例程创建为帮助程序库并直接使用它一个控制器,在某种程度上也是有道理的。

2 个答案:

答案 0 :(得分:1)

在我看来,似乎你应该创建一个模块或类(以更适合你的导出实现的方式),然后从控制器中调用它。对我来说,似乎用户正在发出请求,然后控制器将该请求指向外部库以实现它,然后可以向控制器报告其完成,并且控制器可以通知视图。

如果您要将导出请求存储在数据库中,那么将它放在模型中只对我有意义。

答案 1 :(得分:1)

基本上,“导出”只是创建另一种访问数据的方式。

管理视图的方式来管理访问和表示数据的方式。所以你应该创建另一个视图,而不是模型或控制器。

您创建的视图当然会调用某种导出功能。导出函数将数据模型作为输入,并以“导出”形式返回数据。这可能是模型对象中的方法(“导出我”),也可能是驻留在lib/文件夹中的脚本中的单独函数。

但是,当您实现此导出功能时,可能希望使用其他数据模型(例如,缓存导出的数据)。但这是导出功能的实现细节,可能根本不需要它。