Using HasCustomFields in a plugin

I don’t think so, no

I think the second approach is probably the one to aim for (using pfaffman_server_id as the column name)

I wonder if overriding this method may help:

You can check the current value on the console like

Server.new.custom_fields_fk

If that’s server_id, then I suggest overriding that method in your Server model

class Server < ...
  def custom_fields_fk
    "pfaffman_server_id"
  end
end