Во-первых, вы можете определенно разделить функциональность между подклассами, реализовав на уровне суперкласса - это одна из самых больших выгод для STI.
Что касается вопроса о представлении: я предполагаю, что мы говорим о создании подкласса модели, а не контроллера. В этом случае один контроллер (с обычными представлениями) для основной модели будет нормально работать для всех подклассов. Есть некоторые немного хитрые проблемы, когда дело доходит до форм и создания / редактирования. В частности, вам нужно будет извлечь подкласс модели из параметров и добавить его после обновления всего остального. Например:
def create
citation_class = params[:citation].try(:delete, :type)
@citation = citations.new(params[:citation])
@citation.type = citation_class
flash[:notice] = 'Citation was successfully created.' if @citation.save
respond_with @citation
end