Подтвердить что ты не робот

Что произойдет, если вы используете belongs_to без соответствующего has_one?

У меня есть базовая модель для Item и script, чтобы заполнить ее из пользовательского источника (думаю, RSS-канал). В фиде каждый элемент идентифицируется с помощью guid; в моей системе Item имеет только автогенерируемый первичный ключ id.

Я хочу, скажем, ItemFeedInfo, который отображает guid->id (чтобы я мог различать новые и модифицированные элементы)

Я собираюсь создать

class ItemFeedInfo
  belongs_to :Item
end

Я бы предпочел не изменять Item, так как его определение логически не зависит от ItemFeedInfo Однако каждый пример, который я могу найти при использовании belongs_to, упоминает аналог has_one. Это необходимо?

4b9b3361

Ответ 1

Это не имеет значения.

belongs_to просто добавляет некоторые методы в класс ItemFeedInfo. Вы знаете, когда вы делаете item_feed_info.items.find_all... items - это просто метод, который динамически добавляется при вызове belongs_to.

Если вы не изменяете класс Item, вы просто не будете добавлять методы с другой стороны. Вы не сможете сделать item.item_feed_infos.find_all, потому что без добавления has_many :item_feed_infos этот метод не будет добавлен в класс Item, но если вам действительно не нужно это делать, это не имеет значения.