2016-11-22 62 views
1

我有這個模型稱爲地區和Admin參考,而不使用標籤軌另一個夾具

# regions.yml 
one: 
    name: test 
two: 
    name: test2 

# admins.yml 
one: 
    name: admin1 
two: 
    name: admin2 

有定義爲JSON柱(store_accessor: :region_ids)上admin.rb列。我如何參考admins.yml上的區域?

# admins.yml 
one: 
    name: admin1 
    region_ids: ????? 

回答

1

我問我的同事,得到了答案。這將工作:

# admins.yml 
one: 
    region_ids: <%= Region.pluck(:id) %> 

當它到達這一點時,rails將加載regions.yml。

0

這是一個更新的答案,使用erb來獲取各個地區的id。

這將創建結構json並查詢數據庫以獲取第一個和第二個Region ID。這些將在運行測試時從regions.yml中加載到數據庫中。

# 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,並且您有準確的數據可供您測試。

+0

謝謝,但我試過了,它沒有工作 – OmomSun

+0

@OmomSun我已經更新了我的答案 – user3366016