Понятия не имею, как это сделать с помощью сценария / создания.
Основная идея легче показать без использования скрипта / генерации в любом случае. Вам нужно два поля в таблице / модели видеоигр, которые содержат внешние ключи для таблицы / модели компаний.
Я покажу вам, как я думаю код будет выглядеть, но я не проверял его, поэтому могу ошибаться.
Ваш файл миграции имеет:
create_table :videogames do |t|
# all your other fields
t.int :developer_id
t.int :publisher_id
end
Тогда в вашей модели:
belongs_to :developer, class_name: "Company", foreign_key: "developer_id"
belongs_to :publisher, class_name: "Company", foreign_key: "publisher_id"
Вы также упоминаете, что хотите, чтобы две компании были разными, что вы могли бы обработать в валидации в модели, которая проверяет, что developer_id != publisher_id
.