在Ruby On Rails中,您在哪里检查非模型属性的URL参数(如page,per_page,sort_mode)?在控制器或模型中?
例如,在进行更复杂的数据库查询时,您是否会检查参数并在控制器中设置默认值,然后执行MyModel.search(page, per_page, order, sort_mode, query)
,或者您可以在模型中设置验证并通过非操纵参数MyModel.search(params)
?
您如何将该参数报告回视图?例如,sort_mode参数应该在视图上为排序方向生成一个小箭头。你检查并清理params散列并从params获取视图中的数据,还是使用自己的实例变量?
答案 0 :(得分:7)
我倾向于对控制器中的params进行消毒。
class ApplicationController < ActionController::Base
before_filter :sanitise_params
protected
def sanitise_params
# tidy up
# set defaults
end
end
模型声明其界面的良好实践,并由控制器以正确的方式与它们对话。这样你就可以清楚地分离各层。
查看帮助程序可以帮助查看视图。以下是some examples,它们是ActionPack ActionView的一部分。您可以将自己的内容放在app/helpers