The only required change I see is in your associations' foreign_key
option.
With the current setup you are basically using one single column for three different purposes i.e. primary key for users
table, foreign key for partner
association and foreign key for inverse_partner
association. So, when this is done and you try to set partner such errors can be expected.
Set appropriate foreign keys for each relations as follows:
class User < ActiveRecord::Base
has_one :partner, class_name: "User", foreign_key: :partner_id
belongs_to :inverse_partner, class_name: "User", foreign_key: :inverse_partner_id
end