Я устанавливаю ассоциации has_many и own_to в Rails Model: События (имя, идентификатор, eid) и Users (имя, uid), и существует путаница в отношении внешнего ключа и первичного ключа. Я знаю, что означает внешний ключ и первичный ключ, но не знаю, какой первичный ключ использовать в модели событий: eid или uid. Я видел некоторый код на Github, где они также добавили внешний ключ для модели User. Требуется ли это в моем случае?
Требуется ли миграция для добавления этих ассоциаций?
Дано:
- Каждый пользователь может иметь много событий.
- Каждое событие принадлежит одному пользователю.
- Идентификатор события отображается на пользователя uuid (уникально для каждого пользователя).
- eid - это уникальный идентификатор для каждого события.
class User < ApplicationRecord
has_many :events, inverse_of: :user
end
class Event < ApplicationRecord
belongs_to :user, foreign_key: :identifier, inverse_of: :events
end
Ожидаемый результат:
user = User.first
user.events # Lists all events
event = Event.first
event.user # Outputs first user