The idea is that update_record is tied to a unique id, so it doesn't require additional type conditions. All tests ran on my machine, which gave me the confidence to post this pull request.

But in the case you're outlining, it would fail yes. Perhaps removing the condition is a better solution:

````
@klass.unscoped.rewhere(@klass.inheritance_column.to_sym => nil)
````
so it becomes
````
um = @klass.unscoped.rewhere(@klass.inheritance_column.to_sym => nil).where(@klass.arel_table[@klass.primary_key].eq(id_was || id)).arel.compile_update(substitutes, @klass.primary_key)
````