我有一个名为Region and Admin的模型
# regions.yml
one:
name: test
two:
name: test2
# admins.yml
one:
name: admin1
two:
name: admin2
admin.rb
上的一列定义为json列(store_accessor: :region_ids
)。如何在admins.yml
上引用区域?
# admins.yml
one:
name: admin1
region_ids: ?????
答案 0 :(得分:1)
我问我的同事并得到了答案。这将有效:
# admins.yml
one:
region_ids: <%= Region.pluck(:id) %>
rails会在到达这一点时加载regions.yml。
答案 1 :(得分:0)
这是使用erb获取各个区域的ID的更新答案。
这将创建结构json并查询数据库以获取第一个和第二个区域ID。当您运行测试时,这些将从regions.yml加载到DB中。
# admins.yml
one:
name: admin1
region_ids: >
[{"region_one_id":<%= Region.first.id.to_json.inspect %>},
{"region_two_id":<%= Region.second.id.to_json.inspect %>}]
我查看了Fixture label interpolation来获取id,但是无法用你的表拿着json来代替另一个模型的单个id。
我个人会在你的regions.yml上预先定义你的id,然后在你的admins.yml中直接引用它们。这有助于确保您了解ID,并且您拥有准确测试的数据。