У меня есть установка наследования одной таблицы, где у меня есть один контроллер (я чувствовал, что наличие нескольких будет дублировать).Однако для некоторых методов я бы хотел обратиться к подклассам моделей.Я решил, что браузер может отправить параметр, против которого я напишу оператор 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])
Мой вопрос: это плохая практика?Я могу представить, что кто-то подлый мог бы создать запрос, который заставил бы меня сформировать произвольный внутренний объект ... но я мог бы подтвердить, что объект является подклассом того, что я хочу ..