I believe you can pre-seed some table with default preferences data for devise (or any other gem/library) and then get it from the db in your initializer. 
Then add some crud to let admin user change this preferences.
But full restart of app will be needed for update this preferences. 

It's possible change dynamically devise configuration without app restart?
I have a 3D surface given in data-points of the form ${x,y,z}$. What is the easiest way to get the interpolated value $z=f(X,Y)$ for given coordinates ${X,Y}$ (which are of course not in the data list)? 
