在Rails中检查和validation非模型参数的位置

你在哪里检查Ruby On Rails中不是模型属性的URL参数(如page,per_page,sort_mode)? 在控制器或模型中?

例如,在进行更复杂的数据库查询时,您是否会检查参数并可能在控制器中设置默认值,然后执行MyModel.search(page, per_page, order, sort_mode, query) ,或者您是否在内部设置validation模型,只是传递非操纵的参数MyModel.search(params)

那么如何将该参数报告回视图? 例如,sort_mode参数应该在视图上为排序方向生成一个小箭头。 你检查并清理params散列并从params获取视图中的数据,或者你是否使用自己的实例变量?

我倾向于清理控制器中的params。

 class ApplicationController < ActionController::Base before_filter :sanitise_params protected def sanitise_params # tidy up # set defaults end end 

模型声明其界面的良好实践,并由控制器以正确的方式与它们对话。 这样,您就可以清楚地分离各个层。

查看帮助程序可以帮助查看视图。 以下是ActionPack ActionView的一部分示例 。 你可以把自己放在app/helpers