With SQLite, you have almost no options. Only serialization or storage by separate table.
The first is implemented in one line :
serialize :fields, JSON
... and this, in fact, you will lose the ability to make requests with conditions on these fields.
If you need to search for these fields, you will have to make them a separate model and table and make requests to them of this type:
Thing.joins(:fields).merge( Field.where(key: 'foo', value: 1..5))
Depending on the need to store different types of values there, the conditions of the selection can be complicated by type conversions in SQL.
But I note that you do not want to use SQLite in a web application that will be used simultaneously by more than one person.