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 = [] unless segments.empty? while !segments.empty? && !base.columns_hash[segments.join(Constants::UNDERSCORE)] && association_parts << segments.shift assoc, klass = unpolymorphize_association( association_parts.join(Constants::UNDERSCORE) ) next unless found_assoc = get_association(assoc, base) path += association_parts association_parts = [] base = klassify(klass || found_assoc) end end path.join(Constants::UNDERSCORE) end