提交 40887135 编写于 作者: S Sean Griffin

Whether a column exists or not doesn't affect whether we can use binds

Looking through the blame, this logic used to be when we actually
created the bind tuple. My guess is that `nil` couldn't be handled there
at that time. It can, now.
上级 76d7d957
......@@ -959,12 +959,9 @@ def build_where(opts, other = [])
def create_binds(opts)
bindable, non_binds = opts.partition do |column, value|
case value
when String, Integer, ActiveRecord::StatementCache::Substitute
@klass.columns_hash.include? column.to_s
else
false
end
value.is_a?(String) ||
value.is_a?(Integer) ||
value.is_a?(ActiveRecord::StatementCache::Substitute)
end
association_binds, non_binds = non_binds.partition do |column, value|
......
......@@ -42,7 +42,7 @@ def test_not_in
end
def test_association_not_eq
expected = Comment.arel_table[@name].not_eq('hello')
expected = Comment.arel_table[@name].not_eq(Arel::Nodes::BindParam.new)
relation = Post.joins(:comments).where.not(comments: {title: 'hello'})
assert_equal(expected.to_sql, relation.where_values.first.to_sql)
end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册