method
except_predicates_and_binds
![No documentation Importance_0](https://d2vfyqvduarcvs.cloudfront.net/images/importance_0.png?1349367920)
v5.1.7 -
Show latest stable
-
0 notes -
Class: WhereClause
- 1.0.0
- 1.1.6
- 1.2.6
- 2.0.3
- 2.1.0
- 2.2.1
- 2.3.8
- 3.0.0
- 3.0.9
- 3.1.0
- 3.2.1
- 3.2.8
- 3.2.13
- 4.0.2
- 4.1.8
- 4.2.1
- 4.2.7
- 4.2.9
- 5.0.0.1
- 5.1.7 (0)
- 5.2.3
- 6.0.0
- 6.1.3.1
- 6.1.7.7
- 7.0.0
- 7.1.3.2
- 7.1.3.4
- What's this?
except_predicates_and_binds(columns)
private
Hide source
# File activerecord/lib/active_record/relation/where_clause.rb, line 134 def except_predicates_and_binds(columns) except_binds = [] binds_index = 0 predicates = self.predicates.reject do |node| binds_contains = node.grep(Arel::Nodes::BindParam).size if node.is_a?(Arel::Nodes::Node) except = case node when Arel::Nodes::Between, Arel::Nodes::In, Arel::Nodes::NotIn, Arel::Nodes::Equality, Arel::Nodes::NotEqual, Arel::Nodes::LessThan, Arel::Nodes::LessThanOrEqual, Arel::Nodes::GreaterThan, Arel::Nodes::GreaterThanOrEqual subrelation = (node.left.kind_of?(Arel::Attributes::Attribute) ? node.left : node.right) columns.include?(subrelation.name.to_s) end if except && binds_contains > 0 (binds_index...(binds_index + binds_contains)).each do |i| except_binds[i] = true end end binds_index += binds_contains if binds_contains except end binds = self.binds.reject.with_index do |_, i| except_binds[i] end [predicates, binds] end