class Ransack::Context
def association_path(str, base = @base)
def association_path(str, base = @base) base = klassify(base) str ||= ''.freeze path = [] segments = str.split(Constants::UNDERSCORE) association_parts = [] if (segments = str.split(Constants::UNDERSCORE)).size > 0 while segments.size > 0 && !base.columns_hash[segments.join(Constants::UNDERSCORE)] && association_parts << segments.shift do assoc, klass = unpolymorphize_association( association_parts.join(Constants::UNDERSCORE) ) if found_assoc = get_association(assoc, base) path += association_parts association_parts = [] base = klassify(klass || found_assoc) end end end path.join(Constants::UNDERSCORE) end