Module: Comable::Ransackable::ClassMethods

Defined in:
app/models/concerns/comable/ransackable.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#_ransack_optionsObject (readonly)

Returns the value of attribute _ransack_options.



6
7
8
# File 'app/models/concerns/comable/ransackable.rb', line 6

def _ransack_options
  @_ransack_options
end

Instance Method Details

#ransack_options(options = nil) ⇒ Object



8
9
10
11
12
13
14
# File 'app/models/concerns/comable/ransackable.rb', line 8

def ransack_options(options = nil)
  if options
    @_ransack_options = options
  else
    @_ransack_options || {}
  end
end

#ransackable_association?Boolean

Returns:

  • (Boolean)


29
30
31
# File 'app/models/concerns/comable/ransackable.rb', line 29

def ransackable_association?
  klass.ransackable_associations(auth_object).include? str
end

#ransackable_associations(_auth_object = nil) ⇒ Object



33
34
35
# File 'app/models/concerns/comable/ransackable.rb', line 33

def ransackable_associations(_auth_object = nil)
  reflect_on_all_associations.map { |a| a.name.to_s }
end

#ransackable_attribute?Boolean

Returns:

  • (Boolean)


16
17
18
# File 'app/models/concerns/comable/ransackable.rb', line 16

def ransackable_attribute?
  klass.ransackable_attributes(auth_object).include? str
end

#ransackable_attributes(_auth_object = nil) ⇒ Object



20
21
22
23
24
25
26
27
# File 'app/models/concerns/comable/ransackable.rb', line 20

def ransackable_attributes(_auth_object = nil)
  ransackable_attributes_options = ransack_options[:ransackable_attributes] || {}
  if ransackable_attributes_options[:only]
    [ransackable_attributes_options[:only]].flatten.map(&:to_s)
  else
    column_names + _ransackers.keys - [ransackable_attributes_options[:except]].flatten.map(&:to_s)
  end
end