Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
e06c06d4
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,发现更多精彩内容 >>
提交
e06c06d4
编写于
10月 17, 2012
作者:
A
Aaron Patterson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
use columns hash to look up the column for the count field
上级
01149dd4
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
7 addition
and
14 deletion
+7
-14
activerecord/lib/active_record/relation/calculations.rb
activerecord/lib/active_record/relation/calculations.rb
+1
-1
activerecord/test/cases/calculations_test.rb
activerecord/test/cases/calculations_test.rb
+6
-13
未找到文件。
activerecord/lib/active_record/relation/calculations.rb
浏览文件 @
e06c06d4
...
...
@@ -343,7 +343,7 @@ def column_alias_for(*keys)
def
column_for
(
field
)
field_name
=
field
.
respond_to?
(
:name
)
?
field
.
name
.
to_s
:
field
.
to_s
.
split
(
'.'
).
last
@klass
.
columns
.
detect
{
|
c
|
c
.
name
.
to_s
==
field_name
}
@klass
.
columns
_hash
[
field_name
]
end
def
type_cast_calculated_value
(
value
,
column
,
operation
=
nil
)
...
...
activerecord/test/cases/calculations_test.rb
浏览文件 @
e06c06d4
...
...
@@ -6,6 +6,8 @@
require
'models/organization'
require
'models/possession'
require
'models/topic'
require
'models/minivan'
require
'models/speedometer'
Company
.
has_many
:accounts
...
...
@@ -239,21 +241,12 @@ def test_should_calculate_grouped_association_with_invalid_field
end
def
test_should_group_by_association_with_non_numeric_foreign_key
ActiveRecord
::
Base
.
connection
.
expects
(
:select_all
).
returns
([{
"count_all"
=>
1
,
"firm_id"
=>
"ABC"
}])
firm
=
Speedometer
.
create!
id:
'ABC'
mv
=
Minivan
.
create!
id:
'OMG'
,
speedometer_id:
'ABC'
firm
=
mock
()
firm
.
expects
(
:id
).
returns
(
"ABC"
)
firm
.
expects
(
:class
).
returns
(
Firm
)
Company
.
expects
(
:find
).
with
([
"ABC"
]).
returns
([
firm
])
column
=
mock
()
column
.
expects
(
:name
).
at_least_once
.
returns
(
:firm_id
)
column
.
expects
(
:type_cast
).
with
(
"ABC"
).
returns
(
"ABC"
)
Account
.
expects
(
:columns
).
at_least_once
.
returns
([
column
])
c
=
Account
.
group
(
:firm
).
count
(
:all
)
c
=
Minivan
.
group
(
:speedometer
).
count
(
:all
)
first_key
=
c
.
keys
.
first
assert_equal
Firm
,
first_key
.
class
assert_equal
Speedometer
,
first_key
.
class
assert_equal
1
,
c
[
first_key
]
end
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录