I want to be able to create a record in the DB but then prevent Rails from making changes from that point on. I understand changes will still be possible at the DB level.
Looking at ActiveRecord::Persistence, everything ends up calling create_or_update behind the scenes.
create_or_update
def create_or_update raise ReadOnlyRecord if readonly? result = new_record? ? create : update result != false end
So! Just:
def readonly? !new_record? end