在Rails中,如果只有响应主体变化,我应该创建一个新的控制器动作吗?

时间:2013-08-27 20:21:35

标签: ruby-on-rails ruby-on-rails-3

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

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

这种情况有通用做法吗?看起来最简单的事情就是将这个动作分解为4个动作并使用过滤器和私有方法保持DRY。

1 个答案:

答案 0 :(得分:1)

我同意你的观点。

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

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

例如,我有一个应用程序,其中一个模型具有vote方法。我最终使用vote_upvote_down,因为只允许登录用户投票,然后将正确的action_name发送到CanCan。