Где проверить и проверить немодельные параметры в Rails - PullRequest
9 голосов
/ 17 марта 2011

Где вы проверяете параметры URL, которые не являются атрибутами модели (например, page, per_page, sort_mode) в Ruby On Rails? В контроллере или в модели?

Например, при выполнении более сложного запроса к базе данных вы бы проверили параметры и, возможно, установили значения по умолчанию в контроллере, а затем, например, MyModel.search(page, per_page, order, sort_mode, query), или вы установили бы валидацию внутри модели и просто пропустили необработанные params MyModel.search(params)?

И как вы сообщаете этот параметр обратно в представление? Например, параметр sort_mode, который должен приводить к маленькой стрелке в представлении для направления сортировки. Вы проверяете и очищаете хэш параметров и получаете данные в представлении от параметров, или вы используете для этого собственную переменную экземпляра?

1 Ответ

7 голосов
/ 17 марта 2011

Я склонен дезинфицировать параметры в контроллере.

class ApplicationController < ActionController::Base
  before_filter :sanitise_params

  protected

  def sanitise_params
    # tidy up
    # set defaults
  end
end

Хорошая практика - модели объявляют свой интерфейс, и контроллеры должны правильно с ними общаться. Таким образом, у вас есть четкое разделение ваших слоев.

Помощники по видам существуют, чтобы помочь с представлениями. Вот некоторые примеры , которые входят в состав ActionPack ActionView. Вы можете поставить свой собственный в app/helpers

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...