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

Zar*_*doz 9 validation parameters ruby-on-rails

你在哪里检查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获取视图中的数据,或者你是否使用自己的实例变量?

leb*_*eze 7

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

class ApplicationController < ActionController::Base
  before_filter :sanitise_params

  protected

  def sanitise_params
    # tidy up
    # set defaults
  end
end
Run Code Online (Sandbox Code Playgroud)

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

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