2016-11-22 3 views
1

Ich habe dieses Modell namens Region und AdminReferenz eine andere Befestigung ohne Etikett Schienen mit

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

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

Es gibt eine Spalte auf admin.rb als json Spalte definiert (store_accessor: :region_ids). Wie kann ich Regionen unter admins.yml referenzieren?

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

Antwort

1

Ich fragte meinen Kollegen und bekam die Antwort. Das funktioniert:

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

Schienen werden Regionen.yml geladen, wenn es zu diesem Punkt kommt.

0

Dies ist eine aktualisierte Antwort mit Erb, um die ID für die verschiedenen Regionen zu erhalten.

Dadurch wird die Struktur json erstellt und die Datenbank abgefragt, um die erste und zweite Regions-ID abzurufen. Diese werden bei der Ausführung der Tests von der Datei regions.yml in die Datenbank geladen.

# 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 %>}] 

Ich sah in Fixture label interpolation die ID zu bekommen, aber es kann nicht herausfinden, mit Ihrem Tisch für ein anderes Modell json anstelle einer einzigen ID zu halten.

Persönlich würde ich Ihre IDs auf Ihre Regionen.yml vordefinieren und dann direkt verweisen sie in Ihrer admins.yml. Dadurch können Sie sicher sein, dass Sie die IDs kennen und genaue Daten haben, für die Sie Tests durchführen möchten.

+0

Vielen Dank, aber ich habe versucht, es hat nicht funktioniert – OmomSun

+0

@OmomSun Ich habe meine Antwort aktualisiert – user3366016

Verwandte Themen