Я использую некоторые открытые данные gov в MYSQL, которые я импортировал в свое приложение rails.ActiveRecord двухсторонний внешний ключ.
Я расширил базу данных некоторыми моими собственными таблицами и использовал в столбцах идентификаторы столбцов.
Однако таблицы исходной базы данных связаны уникальным идентификатором 'ndb'.
Я думал, что перекрестные ссылки двух моделей :foreign_key=>'ndb'
между моделями я получил бы правильные таблицы, но через :foreign_key
он, кажется, связывает идентификатор из одной таблицы с столбцом ndb другого.
Мои модели выглядят как этот
class Food < ActiveRecord::Base has_many :weights, :foreign_key=>'ndb' has_many :food_names end class Weight < ActiveRecord::Base belongs_to :food, :foreign_key=>'ndb'
Есть ли способ указать, что столбец «NDB» является связующим звеном между столом питания и веса, а не food_id к NDB?
Я не пробовал это, но мне все еще нужно использовать поля _id в других запросах, поскольку не все связано через это поле «ndb», что я имел в виду под «расширением базы данных, чтобы использовать некоторые из моих собственные таблицы ", поэтому в 70% случаев я использую стандартные идентификаторы rails, но иногда мне нужно связать 'ndb to ndb' – pedalpete
Ну, используя set_primary_key для тех таблиц, которые в ней нуждаются, будет началом, позволяющим вещам как find() для работы. Он также установит значения по умолчанию для ассоциаций. – noodl
Извините, может быть, я не понимаю. Для чего-то вроде таблицы еды я использую поле идентификатора в 70% случаев (придерживаясь стандартов рельсов) в других 30% случаев, мне нужно связать эту таблицу продуктов с другой таблицей, подобной весам через поле ndb. Установка set_primary_key на модели ломает 70% этих отношений. если я не пропущу что-то еще. Как только я установил 'ndb' в качестве первичного ключа, я не могу подключить две таблицы с id к food_id – pedalpete