Guest User

Untitled

a guest
Apr 26th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.55 KB | None | 0 0
  1. diff --git a/activerecord/lib/active_record/base.rb b/activerecord/lib/active_record/base.rb
  2. index 07c5545..dc3353b 100755
  3. --- a/activerecord/lib/active_record/base.rb
  4. +++ b/activerecord/lib/active_record/base.rb
  5. @@ -1506,7 +1506,7 @@ module ActiveRecord #:nodoc:
  6. end
  7.  
  8. def arel_table(table = nil)
  9. - Relation.new(self, Arel::Table.new(table || table_name))
  10. + Relation.new(self, Arel::Table.new(table || table_name, Arel::Sql::Engine.new(self)))
  11. end
  12.  
  13. private
  14. diff --git a/activerecord/lib/active_record/relation.rb b/activerecord/lib/active_record/relation.rb
  15. index ae03e1d..5336a1a 100644
  16. --- a/activerecord/lib/active_record/relation.rb
  17. +++ b/activerecord/lib/active_record/relation.rb
  18. @@ -132,6 +132,16 @@ module ActiveRecord
  19. relation
  20. end
  21.  
  22. + def table
  23. + return @table if @table
  24. +
  25. + if @relation.kind_of?(Arel::Table)
  26. + @table = @relation
  27. + else
  28. + @table = @relation.table
  29. + end
  30. + end
  31. +
  32. protected
  33.  
  34. def method_missing(method, *args, &block)
  35. diff --git a/activerecord/lib/active_record/relation/finder_methods.rb b/activerecord/lib/active_record/relation/finder_methods.rb
  36. index 7a1d6fc..99391b5 100644
  37. --- a/activerecord/lib/active_record/relation/finder_methods.rb
  38. +++ b/activerecord/lib/active_record/relation/finder_methods.rb
  39. @@ -78,7 +78,7 @@ module ActiveRecord
  40. end
  41.  
  42. def find_one(id)
  43. - record = where(@klass.primary_key => id).first
  44. + record = where(table[@klass.primary_key].eq(id)).first
  45.  
  46. unless record
  47. conditions = where_clause(', ')
Add Comment
Please, Sign In to add comment