Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
bf88250c
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,发现更多精彩内容 >>
提交
bf88250c
编写于
10月 05, 2018
作者:
G
Gannon McGibbon
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Move FixtureSet.create_fixtures reading and inserting sections into private methods
上级
2622f290
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
58 addition
and
41 deletion
+58
-41
activerecord/lib/active_record/fixtures.rb
activerecord/lib/active_record/fixtures.rb
+58
-41
未找到文件。
activerecord/lib/active_record/fixtures.rb
浏览文件 @
bf88250c
...
...
@@ -514,13 +514,12 @@ def cache_fixtures(connection, fixtures_map)
end
def
instantiate_fixtures
(
object
,
fixture_set
,
load_instances
=
true
)
if
load_instances
fixture_set
.
each
do
|
fixture_name
,
fixture
|
begin
object
.
instance_variable_set
"@
#{
fixture_name
}
"
,
fixture
.
find
rescue
FixtureClassNotFound
nil
end
return
unless
load_instances
fixture_set
.
each
do
|
fixture_name
,
fixture
|
begin
object
.
instance_variable_set
"@
#{
fixture_name
}
"
,
fixture
.
find
rescue
FixtureClassNotFound
nil
end
end
end
...
...
@@ -538,42 +537,17 @@ def create_fixtures(fixtures_directory, fixture_set_names, class_names = {}, con
# FIXME: Apparently JK uses this.
connection
=
block_given?
?
yield
:
ActiveRecord
::
Base
.
connection
fi
les_to_read
=
fixture_set_names
.
reject
{
|
fs_name
|
fi
xture_files_to_read
=
fixture_set_names
.
reject
do
|
fs_name
|
fixture_is_cached?
(
connection
,
fs_name
)
}
unless
files_to_read
.
empty?
fixtures_map
=
{}
fixture_sets
=
files_to_read
.
map
do
|
fs_name
|
klass
=
class_names
[
fs_name
]
conn
=
klass
?
klass
.
connection
:
connection
fixtures_map
[
fs_name
]
=
new
(
# ActiveRecord::FixtureSet.new
conn
,
fs_name
,
klass
,
::
File
.
join
(
fixtures_directory
,
fs_name
))
end
update_all_loaded_fixtures
fixtures_map
fixture_sets_by_connection
=
fixture_sets
.
group_by
{
|
fs
|
fs
.
model_class
?
fs
.
model_class
.
connection
:
connection
}
fixture_sets_by_connection
.
each
do
|
conn
,
set
|
table_rows_for_connection
=
Hash
.
new
{
|
h
,
k
|
h
[
k
]
=
[]
}
set
.
each
do
|
fs
|
fs
.
table_rows
.
each
do
|
table
,
rows
|
table_rows_for_connection
[
table
].
unshift
(
*
rows
)
end
end
conn
.
insert_fixtures_set
(
table_rows_for_connection
,
table_rows_for_connection
.
keys
)
# Cap primary key sequences to max(pk).
if
conn
.
respond_to?
(
:reset_pk_sequence!
)
set
.
each
{
|
fs
|
conn
.
reset_pk_sequence!
(
fs
.
table_name
)
}
end
end
end
if
fixture_files_to_read
.
any?
fixtures_map
=
read_and_insert
(
fixtures_directory
,
fixture_files_to_read
,
class_names
,
connection
,
)
cache_fixtures
(
connection
,
fixtures_map
)
end
cached_fixtures
(
connection
,
fixture_set_names
)
...
...
@@ -594,6 +568,49 @@ def context_class
@context_class
||=
Class
.
new
end
private
def
read_and_insert
(
fixtures_directory
,
fixture_files
,
class_names
,
connection
)
# :nodoc:
fixtures_map
=
{}
fixture_sets
=
fixture_files
.
map
do
|
fixture_set_name
|
klass
=
class_names
[
fixture_set_name
]
conn
=
klass
&
.
connection
||
connection
fixtures_map
[
fixture_set_name
]
=
new
(
# ActiveRecord::FixtureSet.new
conn
,
fixture_set_name
,
klass
,
::
File
.
join
(
fixtures_directory
,
fixture_set_name
)
)
end
update_all_loaded_fixtures
(
fixtures_map
)
insert
(
fixture_sets
,
connection
)
fixtures_map
end
def
insert
(
fixture_sets
,
connection
)
# :nodoc:
fixture_sets_by_connection
=
fixture_sets
.
group_by
do
|
fixture_set
|
fixture_set
.
model_class
&
.
connection
||
connection
end
fixture_sets_by_connection
.
each
do
|
conn
,
set
|
table_rows_for_connection
=
Hash
.
new
{
|
h
,
k
|
h
[
k
]
=
[]
}
set
.
each
do
|
fixture_set
|
fixture_set
.
table_rows
.
each
do
|
table
,
rows
|
table_rows_for_connection
[
table
].
unshift
(
*
rows
)
end
end
conn
.
insert_fixtures_set
(
table_rows_for_connection
,
table_rows_for_connection
.
keys
)
# Cap primary key sequences to max(pk).
if
conn
.
respond_to?
(
:reset_pk_sequence!
)
set
.
each
{
|
fs
|
conn
.
reset_pk_sequence!
(
fs
.
table_name
)
}
end
end
end
def
update_all_loaded_fixtures
(
fixtures_map
)
# :nodoc:
all_loaded_fixtures
.
update
(
fixtures_map
)
end
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录