Ric*_*nop 8 oop model-view-controller design-patterns
我想问一下,从模型而不是控制器重定向是否是一种好方法.
我想这样做的原因是因为从模型中单元测试重定向更容易(我只是将模拟重定向器对象传递给我的测试中的模型),而不是单元测试更难控制的控制器.它还使控制器更薄,因为我在控制器中所做的只是创建模型的实例并从请求对象传递它的参数.控制器中没有这样的if/else.
这是一种不好的做法吗?
控制器和模型都不应该在任何地方重定向任何内容。HTTP Location 标头是响应的形式,严格在视图的权限范围内。
模型层处理业务逻辑,它应该完全忽略表示层的存在。
基本上,它可以归结为:控制器处理输入,视图处理输出。HTTP 标头是输出的一部分。
注意:在处理 Rails 克隆时,经常会看到在“控制器”中执行重定向。这是因为他们所说的“控制器”实际上是视图和控制器职责的合并。这是选择用简单模板替换真实视图作为三元组的第三面的副作用。