Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
8996fc30
R
rails
项目概览
张重言
/
rails
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rails
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
8996fc30
编写于
6月 19, 2014
作者:
R
Rafael Mendonça França
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #15802 from sgrif/sg-column-quoting
Don't use column object for type casting in `quoting`
上级
197364f8
0336efaa
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
6 addition
and
31 deletion
+6
-31
activerecord/lib/active_record/connection_adapters/abstract/quoting.rb
...lib/active_record/connection_adapters/abstract/quoting.rb
+4
-4
activerecord/lib/active_record/connection_adapters/postgresql/quoting.rb
...b/active_record/connection_adapters/postgresql/quoting.rb
+2
-2
activerecord/test/cases/quoting_test.rb
activerecord/test/cases/quoting_test.rb
+0
-25
未找到文件。
activerecord/lib/active_record/connection_adapters/abstract/quoting.rb
浏览文件 @
8996fc30
...
...
@@ -14,8 +14,8 @@ def quote(value, column = nil)
# value. Is this really the only case? Are we missing tests for other types?
# We should have a real column object passed (or nil) here, and check for that
# instead
if
column
.
respond_to?
(
:
type_cast_for_databas
e
)
value
=
column
.
type_cast_for_database
(
value
)
if
column
.
respond_to?
(
:
cast_typ
e
)
value
=
column
.
cast_type
.
type_cast_for_database
(
value
)
end
_quote
(
value
)
...
...
@@ -34,8 +34,8 @@ def type_cast(value, column)
# value. Is this really the only case? Are we missing tests for other types?
# We should have a real column object passed (or nil) here, and check for that
# instead
if
column
.
respond_to?
(
:
type_cast_for_databas
e
)
value
=
column
.
type_cast_for_database
(
value
)
if
column
.
respond_to?
(
:
cast_typ
e
)
value
=
column
.
cast_type
.
type_cast_for_database
(
value
)
end
_type_cast
(
value
)
...
...
activerecord/lib/active_record/connection_adapters/postgresql/quoting.rb
浏览文件 @
8996fc30
...
...
@@ -179,8 +179,8 @@ def _type_cast(value)
end
def
array_column
(
column
)
if
column
.
array
&&
!
column
.
respond_to?
(
:
type_cast_for_databas
e
)
OID
::
Array
.
new
(
AdapterProxyType
.
new
(
column
,
self
))
if
column
.
array
&&
!
column
.
respond_to?
(
:
cast_typ
e
)
Column
.
new
(
''
,
nil
,
OID
::
Array
.
new
(
AdapterProxyType
.
new
(
column
,
self
)
))
else
column
end
...
...
activerecord/test/cases/quoting_test.rb
浏览文件 @
8996fc30
...
...
@@ -93,12 +93,10 @@ def test_quote_nil
def
test_quote_true
assert_equal
@quoter
.
quoted_true
,
@quoter
.
quote
(
true
,
nil
)
assert_equal
'1'
,
@quoter
.
quote
(
true
,
Type
::
Integer
.
new
)
end
def
test_quote_false
assert_equal
@quoter
.
quoted_false
,
@quoter
.
quote
(
false
,
nil
)
assert_equal
'0'
,
@quoter
.
quote
(
false
,
Type
::
Integer
.
new
)
end
def
test_quote_float
...
...
@@ -157,25 +155,6 @@ def test_quote_as_mb_chars_no_column
assert_equal
"'lo
\\\\
l'"
,
@quoter
.
quote
(
string
,
nil
)
end
def
test_quote_string_int_column
assert_equal
"1"
,
@quoter
.
quote
(
'1'
,
Type
::
Integer
.
new
)
assert_equal
"1"
,
@quoter
.
quote
(
'1.2'
,
Type
::
Integer
.
new
)
end
def
test_quote_string_float_column
assert_equal
"1.0"
,
@quoter
.
quote
(
'1'
,
Type
::
Float
.
new
)
assert_equal
"1.2"
,
@quoter
.
quote
(
'1.2'
,
Type
::
Float
.
new
)
end
def
test_quote_as_mb_chars_binary_column
string
=
ActiveSupport
::
Multibyte
::
Chars
.
new
(
'lo\l'
)
assert_equal
"'lo
\\\\
l'"
,
@quoter
.
quote
(
string
,
Type
::
Binary
.
new
)
end
def
test_quote_binary_without_string_to_binary
assert_equal
"'lo
\\\\
l'"
,
@quoter
.
quote
(
'lo\l'
,
Type
::
Binary
.
new
)
end
def
test_string_with_crazy_column
assert_equal
"'lo
\\\\
l'"
,
@quoter
.
quote
(
'lo\l'
)
end
...
...
@@ -183,10 +162,6 @@ def test_string_with_crazy_column
def
test_quote_duration
assert_equal
"1800"
,
@quoter
.
quote
(
30
.
minutes
)
end
def
test_quote_duration_int_column
assert_equal
"7200"
,
@quoter
.
quote
(
2
.
hours
,
Type
::
Integer
.
new
)
end
end
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录