Module: CanvasSync::Concerns::UserViaPseudonym::RelationHook

Extended by:
ActiveSupport::Concern
Defined in:
lib/canvas_sync/concerns/user_via_pseudonym.rb

Instance Method Summary collapse

Instance Method Details

#where!(*args) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/canvas_sync/concerns/user_via_pseudonym.rb', line 8

def where!(*args)
  return super unless self.respond_to?(:users_via_pseudonym)

  super.tap do |q|
    args.select { |a| a.is_a?(Hash) }.each do |hash|
      hash.each do |key, value|
        next unless users_via_pseudonym.key?(key)
        q.joins!(key).references!(Arel::Nodes::SqlLiteral.new(key.to_s))
      end
    end
  end
end