如何在Rails模型中添加外键关联



我在Rails模型中设置has_many和belongs_to关联:Events(name,identifier,eid)和Users(name,uid),外键和主键之间存在混淆。我知道外键和主键的含义,但混淆了在事件模型中使用哪个主键:eid或uid。我在Github上看到了一些代码,他们也在User模型上添加了外键。在我的情况下需要吗?

添加这些关联是否需要迁移?

给定:

  1. 每个用户可以有许多事件
  2. 每个事件都属于一个用户
  3. 事件标识符映射到用户uuid(每个用户都是唯一的)
  4. eid是每个事件的唯一id
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

您应该使用users表中的列,该列唯一标识用户。当我读到你的帖子是uid时,在这种情况下,你的代码应该看起来像这样:

class User < ApplicationRecord
has_many :events, inverse_of: :event
end
class Events < ApplicationRecord
belongs_to :user, foreign_key: :uid, inverse_of: :user
end

希望这能有所帮助。

相关内容

  • 没有找到相关文章

最新更新