Такая логика не должна существовать в контроллере. Это действительно бизнес сфера и должна быть в модели. Вот как вы должны это сделать:
categorization = Categorization.find_or_create_by_category_id_and_categorizable_id_and_categorizable_type(self.category_id, self.categorizable_id, self.categorizable_type)
categorization.increment!(:count)
find_or_create попытается найти категорию в БД, и, если она не существует, она создаст ее. Теперь просто убедитесь, что значение по умолчанию равно нулю, и этот код будет делать то, что вы хотите. (при первоначальном создании счет будет равен 1, а затем будет увеличиваться)
PS: я не уверен, изменился ли find_or_create в rails 3. Но это основная идея