Update to CPK 6.0.1 and drop monkey patch
This commit is contained in:
parent
be088602fb
commit
d375caf7a3
3 changed files with 11 additions and 60 deletions
2
Gemfile
2
Gemfile
|
@ -41,7 +41,7 @@ gem 'rinku', '>= 1.2.2', :require => 'rails_rinku'
|
|||
gem 'oauth-plugin', '>= 0.5.1'
|
||||
gem 'open_id_authentication', '>= 1.1.0'
|
||||
gem 'validates_email_format_of', '>= 1.5.1'
|
||||
gem 'composite_primary_keys', '>= 6.0.0'
|
||||
gem 'composite_primary_keys', '>= 6.0.1'
|
||||
gem 'http_accept_language', '~> 2.0.0'
|
||||
gem 'paperclip', '~> 3.0'
|
||||
gem 'deadlock_retry', '>= 1.2.0'
|
||||
|
|
21
Gemfile.lock
21
Gemfile.lock
|
@ -11,7 +11,7 @@ GEM
|
|||
erubis (~> 2.7.0)
|
||||
rack (~> 1.5.2)
|
||||
rack-test (~> 0.6.2)
|
||||
actionpack-page_caching (1.0.1)
|
||||
actionpack-page_caching (1.0.2)
|
||||
actionpack (>= 4.0.0, < 5)
|
||||
activemodel (4.0.1)
|
||||
activesupport (= 4.0.1)
|
||||
|
@ -43,7 +43,7 @@ GEM
|
|||
coffee-script-source
|
||||
execjs
|
||||
coffee-script-source (1.6.3)
|
||||
composite_primary_keys (6.0.0)
|
||||
composite_primary_keys (6.0.1)
|
||||
activerecord (>= 4.0.0)
|
||||
dalli (2.6.4)
|
||||
deadlock_retry (1.2.0)
|
||||
|
@ -75,7 +75,7 @@ GEM
|
|||
mail (2.5.4)
|
||||
mime-types (~> 1.16)
|
||||
treetop (~> 1.4.8)
|
||||
mime-types (1.25)
|
||||
mime-types (1.25.1)
|
||||
mini_portile (0.5.2)
|
||||
minitest (4.7.5)
|
||||
multi_json (1.8.2)
|
||||
|
@ -107,12 +107,11 @@ GEM
|
|||
mime-types
|
||||
pg (0.17.0)
|
||||
polyglot (0.3.3)
|
||||
psych (2.0.1)
|
||||
psych (2.0.2)
|
||||
r2 (0.2.2)
|
||||
rack (1.5.2)
|
||||
rack-cors (0.2.8)
|
||||
rack
|
||||
rack-openid (1.4.0)
|
||||
rack-cors (0.2.9)
|
||||
rack-openid (1.4.1)
|
||||
rack (>= 1.1.0)
|
||||
ruby-openid (>= 2.1.8)
|
||||
rack-test (0.6.2)
|
||||
|
@ -144,7 +143,7 @@ GEM
|
|||
railties (>= 4.0.0, < 5.0)
|
||||
sass (>= 3.1.10)
|
||||
sprockets-rails (~> 2.0.0)
|
||||
sprockets (2.10.0)
|
||||
sprockets (2.10.1)
|
||||
hike (~> 1.2)
|
||||
multi_json (~> 1.0)
|
||||
rack (~> 1.0)
|
||||
|
@ -157,12 +156,12 @@ GEM
|
|||
thread_safe (0.1.3)
|
||||
atomic
|
||||
tilt (1.4.1)
|
||||
timecop (0.6.3)
|
||||
timecop (0.7.0)
|
||||
treetop (1.4.15)
|
||||
polyglot
|
||||
polyglot (>= 0.3.1)
|
||||
tzinfo (0.3.38)
|
||||
uglifier (2.3.0)
|
||||
uglifier (2.3.1)
|
||||
execjs (>= 0.3.0)
|
||||
json (>= 1.8.0)
|
||||
validates_email_format_of (1.5.3)
|
||||
|
@ -176,7 +175,7 @@ DEPENDENCIES
|
|||
actionpack-page_caching
|
||||
bigdecimal (~> 1.1.0)
|
||||
coffee-rails (~> 4.0.0)
|
||||
composite_primary_keys (>= 6.0.0)
|
||||
composite_primary_keys (>= 6.0.1)
|
||||
dalli
|
||||
deadlock_retry (>= 1.2.0)
|
||||
dynamic_form
|
||||
|
|
|
@ -1,48 +0,0 @@
|
|||
# Monkey patch composite_primary_keys pending the resolution of:
|
||||
# https://github.com/composite-primary-keys/composite_primary_keys/pull/170
|
||||
module ActiveRecord
|
||||
module Associations
|
||||
class HasManyAssociation
|
||||
def delete_records(records, method)
|
||||
if method == :destroy
|
||||
records.each { |r| r.destroy }
|
||||
update_counter(-records.length) unless inverse_updates_counter_cache?
|
||||
else
|
||||
if records == :all
|
||||
scope = self.scope
|
||||
else
|
||||
# CPK
|
||||
# keys = records.map { |r| r[reflection.association_primary_key] }
|
||||
# scope = scope.where(reflection.association_primary_key => keys)
|
||||
table = Arel::Table.new(reflection.table_name)
|
||||
and_conditions = records.map do |record|
|
||||
eq_conditions = Array(reflection.association_primary_key).map do |name|
|
||||
table[name].eq(record[name])
|
||||
end
|
||||
Arel::Nodes::And.new(eq_conditions)
|
||||
end
|
||||
|
||||
condition = and_conditions.shift
|
||||
and_conditions.each do |and_condition|
|
||||
condition = condition.or(and_condition)
|
||||
end
|
||||
|
||||
scope = self.scope.where(condition)
|
||||
end
|
||||
|
||||
if method == :delete_all
|
||||
update_counter(-scope.delete_all)
|
||||
else
|
||||
# CPK
|
||||
# update_counter(-scope.update_all(reflection.foreign_key => nil))
|
||||
updates = Array(reflection.foreign_key).inject(Hash.new) do |hash, name|
|
||||
hash[name] = nil
|
||||
hash
|
||||
end
|
||||
update_counter(-scope.update_all(updates))
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue