Ссылка на другой прибор без использования меток

У меня эта модель называется 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: ?????

2 ответа

Решение

Я спросил своего коллегу и получил ответ. Это будет работать:

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

rails будет загружать region.yml, когда он доберется до этой точки.

Это обновленный ответ с использованием erb для получения идентификатора для различных регионов.

Это создает структуру json и запрашивает базу данных, чтобы получить первый и второй идентификаторы региона. Они будут загружены в БД из region.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, чтобы получить идентификатор, но не могу понять, что ваша таблица содержит json вместо одного идентификатора для другой модели.

Лично я бы заранее определил ваши идентификаторы на вашем region.yml, а затем напрямую ссылался на них в вашем admins.yml. Это поможет вам узнать идентификаторы и иметь точные данные, с которыми вы будете иметь дело.

Другие вопросы по тегам