Это плохая практика - постоянно сохранять параметры, отправленные через браузер?

У меня есть установка наследования одной таблицы, где у меня есть один Контроллер (я чувствовал, что наличие нескольких будет дублировать). Однако для некоторых методов я хотел бы вызвать подклассы моделей. Я подумал, что могу заставить браузер отправлять параметр, для которого я бы написал оператор case. Что-то вроде:

case @model[:type]
when "A"
  @results = Subclass1.search(params[:term])
when "B"
  @results = Subclass2.search(params[:term])
...
end

С другой стороны, я узнал, что Ruby, несмотря на все свои хитрости, может создать модель из строки. Примерно так:

@results = params[:model].constantize.search(params[:term])

Мой вопрос: это плохая практика? Я могу представить, что кто-то подлый может создать запрос, который заставит меня сформировать произвольный внутренний объект ... но я могу подтвердить, что этот объект является подклассом того, что я хочу ...

6
задан Kevin Davis 9 April 2011 в 19:59
поделиться