2016-11-22 7 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) %> 

このポイントに達すると、レールはregions.ymlをロードします。

0

これは、さまざまな地域のIDを取得するためにerbを使用して更新された回答です。

これにより、構造jsonが作成され、データベースに照会されて第1および第2の地域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 %>}] 

私はIDを取得するためにFixture label interpolationに見えたが、代わりに別のモデルのための単一のIDのあなたのテーブル保持JSONでそれを把握することはできません。

個人的には、あなたのregions.ymlにあなたのIDをあらかじめ定義しておき、あなたのadmins.ymlでそれらを直接参照します。これによりIDを把握し、テストするために構造化した正確なデータが得られるようになります。

+0

ありがとうございますが、試しましたが、うまくいきませんでした – OmomSun

+0

@OmomSun私の回答を更新しました – user3366016

関連する問題