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