I second Tim’s observation, but wish to add:
From a design perspective, a more generic approach that preserves everything you know and love about AR models is to create the following tables/models:
Something like that. You can make SytemType acts_as_list if you like to order them, and categories can acts_as_tree if you want them to be hierarchically related. Knock yourself out. Can be as simple or complex as you wish to make it.
Category will have a one-to-many relationship with SystemType.
Where you would otherwise be tempted to add a table, instead add a Category record. When adding a new SystemType, you must relate it to a Category. The type system can grow without needing migrations.
You can also add static methods to SystemType to return all types for a given category. Let’s say one of those is ‘Image’ (denoting an image type), inside SystemType you can do something like this: