好的做法 - 模型中的重定向? - Rails 3.1

Jac*_*cob 5 ruby-on-rails ruby-on-rails-3.1

我有一个Search模型和控制器.业务逻辑是,如果用户的关键字完全匹配产品的型号,则将其重定向到产品页面.

在这种情况下,我应该从模型内部进行重定向(大部分逻辑已驻留在哪里)?

或者我应该向控制器返回一个标志或东西,以便我可以处理重定向?

mli*_*elt 9

模型对象不能ans永远不会重定向.应用逻辑是控制器的占空比,因此控制器应该询问模型对象(作为请求的结果)如果产品相匹配的型号,然后该控制器不重定向.模型对象不应该知道有关控制器或视图的任何信息.这是Rails实现的"模型 - 视图 - 控制器概念"的一部分.

Rails将模型实现为ActiveRecord模式,因此模型对象可以负责数据库,包括对数据库的搜索.请参阅Rails指南中有关ActiveRecord查询的许多选项,以了解模型对象的责任.