Module: ParanoidFu::BelongsToPolymorphicAssociation

Defined in:
lib/paranoid_fu/belongs_to_polymorphic_association.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



3
4
5
6
7
# File 'lib/paranoid_fu/belongs_to_polymorphic_association.rb', line 3

def self.included(base)
  base.class_eval do
    alias_method_chain :find_target, :paranoid_fu
  end
end

Instance Method Details

#conditionsObject



21
22
23
# File 'lib/paranoid_fu/belongs_to_polymorphic_association.rb', line 21

def conditions
  @conditions ||= interpolate_sql(association_class.send(:sanitize_sql, @reflection.options[:conditions])) if @reflection.options[:conditions]
end

#find_target_with_paranoid_fuObject



9
10
11
12
13
14
15
16
17
18
19
# File 'lib/paranoid_fu/belongs_to_polymorphic_association.rb', line 9

def find_target_with_paranoid_fu
  old_conditions = @reflection.options[:conditions]
  if @reflection.options[:without_deleted]
    # conditions method is not called if conditions isn't set in options hash
    @reflection.options[:conditions] = association_class.merge_conditions(@reflection.options[:conditions], association_class.without_deleted_conditions(association_class.table_name))
  end
  find_target_without_paranoid_fu
ensure
  # restore conditions in options hash
  @reflection.options[:conditions] = old_conditions
end