Module | ActiveRecord::Hates::IN::ClassMethods |
In: |
lib/hates_in.rb
|
base.rb line 481 in rails 1.2.5
# File lib/hates_in.rb, line 19 19: def delete_with_hates_of_in(id) 20: key = connection.quote_column_name(primary_key) 21: if id.is_a?(Array) 22: unless id.empty? 23: sql = id.map {|x| "#{key} = ?"}.join(" OR ") 24: id.unshift("(#{sql})") 25: delete_all(id) 26: end 27: else 28: delete_all(["#{key} = ?", id]) 29: end 30: end
base.rb line 1035 in rails 1.2.5
# File lib/hates_in.rb, line 33 33: def find_some_with_hates_of_in(ids, options) 34: conditions = " AND (#{sanitize_sql(options[:conditions])})" if options[:conditions] 35: key = connection.quote_column_name(primary_key) 36: pk = columns_hash[primary_key] 37: if ids.empty? 38: options.update :conditions => "(0 = 1)#{conditions}" 39: else 40: sql = ids.map {|id| "#{table_name}.#{key} = #{quote_value(id, pk)}"}.join(" OR ") 41: options.update :conditions => "(#{sql})#{conditions}" 42: end 43: result = find_every(options) 44: if result.size == ids.size 45: result 46: else 47: raise RecordNotFound, "Couldn't find all #{name.pluralize} with IDs (#{ids_list})#{conditions}" 48: end 49: end
base.rb line 1403 in rails 1.2.5
# File lib/hates_in.rb, line 56 56: def sanitize_sql_hash_with_hates_of_in(attrs) 57: conditions = attrs.map do |attr, value| 58: if value.is_a?(Array) 59: if value.empty? 60: "(0 = 1)" 61: else 62: key = connection.quote_column_name(attr) 63: sql = value.map {|v| "#{table_name}.#{key} #{attribute_condition(v)}"}.join(" OR ") 64: "(#{sql})" 65: end 66: else 67: "#{table_name}.#{connection.quote_column_name(attr)} #{attribute_condition(value)}" 68: end 69: end.join(' AND ') 70: replace_bind_variables(conditions, expand_range_bind_variables(attrs.values.flatten)) 71: end