Since delegated_type assumes that the foreign_key ends with `_id`, `singular_id` defined by it does not work when the foreign_key does not end with `id`. This commit fixes it by taking into account `primary_key` and `foreign_key` in the options.