associate_identification expects a plural association_id, however when called from has_one or belongs_to, associate_identification is passed a singular form association_id, which is turn it passes to class_name, which always calls Inflector.singularize.
If the association_id is a singular word that matches singularization rule, it'll be wrongly transformed. e.g. "status" => "statu"
associate_identification must be modified to take an excplit parameter denoting the association_id form (singular or plural). has_one and belongs_to must be modified to notify associate_identification about the expected form.
alternatively, has_one and belongs_to could pluralize the parameter before passing it to associate_identification.