【问题标题】:Where to check and validate non model parameters in Rails在哪里检查和验证 Rails 中的非模型参数
【发布时间】:2011-07-17 06:34:40
【问题描述】:

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

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

您如何将该参数报告回视图?例如一个 sort_mode 参数,它应该在视图上产生一个小箭头来指示排序方向。您是检查并清理 params 哈希并从 params 获取视图中的数据,还是为此使用自己的实例变量?

【问题讨论】:

    标签: ruby-on-rails validation parameters


    【解决方案1】:

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

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

    良好的实践是模型声明他们的接口,并且由控制器以正确的方式与他们交谈。这样你就可以清楚地分离图层。

    视图助手可以帮助查看视图。这里是some examples,它是 ActionPack 的 ActionView 的一部分。你可以把你自己的放在app/helpers

    【讨论】:

      猜你喜欢
      • 2011-06-03
      • 1970-01-01
      • 2012-10-01
      • 2016-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多