class PartialKs::FilteredTable
Attributes
custom_filter_relation[R]
parent[R]
table[R]
Public Class Methods
new(model, parent, custom_filter_relation: nil)
click to toggle source
# File lib/partial_ks/filtered_table.rb, line 6 def initialize(model, parent, custom_filter_relation: nil) @table = PartialKs::Table.new(model) @parent = parent @custom_filter_relation = custom_filter_relation end
Public Instance Methods
to_sql()
click to toggle source
# File lib/partial_ks/filtered_table.rb, line 12 def to_sql if custom_filter_relation filter_based_on_custom_filter_relation elsif parent && parent.to_sql.nil? nil elsif parent filter_based_on_parent_model(parent.table.model) else nil end end
Protected Instance Methods
filter_based_on_custom_filter_relation()
click to toggle source
# File lib/partial_ks/filtered_table.rb, line 29 def filter_based_on_custom_filter_relation relation = custom_filter_relation.respond_to?(:call) ? custom_filter_relation.call : custom_filter_relation if relation.is_a?(ActiveRecord::Relation) || relation.respond_to?(:where_sql) relation.to_sql.to_s elsif relation.is_a?(String) relation end end
filter_based_on_parent_model(parent_model)
click to toggle source
# File lib/partial_ks/filtered_table.rb, line 25 def filter_based_on_parent_model(parent_model) table.relation_for_associated_model(parent_model).to_sql.to_s end