I have the following:
class User < ActiveRecord::Base
has_one :car, :class_name => 'Car', :foreign_key => 'user_id'
class Car < ActiveRecord::Base
belongs_to :worker, :class_name => 'User', :foreign_key => 'user_id'
why don't you just test before the user tries to add a car?
if worker.car raise "sorry buddy, no car for you" else car = Car.create(user_id: worker.id) end