class Ransack::Nodes::Grouping

def attribute_method?(name)

def attribute_method?(name)
  stripped_name = strip_predicate_and_index(name)
  return true if @context.attribute_method?(stripped_name) ||
                 @context.attribute_method?(name)
  case stripped_name
  when /^(g|c|m|groupings|conditions|combinator)=?$/
    true
  else
    stripped_name
    .split(/_and_|_or_/)
    .none? { |n| !@context.attribute_method?(n) }
  end
end