Good call! It caught me when trying to "flip" positions. My goal is to make sure there are not duplicate positions for a user so a user can't make everything, say, a "2". I fixed bug by allowing nil, and then wipe the values in a transaction before putting in the users values through validation. Any empty values passed by user are caught & changed to trigger the transaction rollback... I would prefer to simply catch empty values & raise an RecordInvalid exception directly, but not sure on proper syntax for that yet. Maybe for a later refactor.