Prior to Rails 3.1, we could update the self.columns method of ActiveRecord::Base.
But that doesn’t seem to work now.
Now it seems if I remove a column from a table, I am forced to restart the Rails server. If I don’t I keep getting errors when INSERTs to the table happen. Rails still thinks the old column exists, even though it’s not in the database anymore.
Active Record does not support this out of the box, because it queries the database to get the columns of a model (unlike Merb’s ORM tool, Datamapper).
Nonetheless, you can patch this feature on Rails with (assuming, for instance, you want to ignore columns starting with “deprecated” string):