4

我正在重构一个具有多个视图的应用程序,这些视图利用单个控制器操作来处理相同数据的不同方面(表格、日历、另一个日历、文件导出)

目前,该动作使用参数和条件来选择 4 个响应中的一个,但实际数据对所有 4 个响应都是通用的。

这种情况有一般的做法吗?似乎最简单的事情就是将此动作分解为 4 个动作,并使用过滤器和私有方法使其保持干燥。

4

1 回答 1

1

我同意你的观点。

将它们全部放在一个动作中实际上并不那么干燥。处理带有条件的参数,准备模板名称,准备视图中的查询字符串,这些都需要与拆分操作相比不必要的代码。

另一个缺点是过滤器和操作消息。拆分为几个动作,action_name不同的,然后可以发送不同的消息。

例如,我有一个应用程序,它具有vote一种模型的方法。我最终使用了vote_upvote_down因为只有登录用户才可以投票,所以可以将正确的 action_name 发送到 CanCan。

于 2013-08-27T20:34:14.557 回答