我在Rails模型中设置has_many和belongs_to关联:事件(名称,标识符,eid)和Users(名称,uid),并且在外键和主键方面存在混淆。我知道外键和主键的含义,但是混淆了在事件模型中使用哪个主键:eid或uid。我在Github上看到了一些代码,他们也在User模型上添加了外键。就我而言是必需的吗?
添加这些关联是否需要迁移?
给出:
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
答案 0 :(得分:0)
您应该使用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
希望这会有所帮助。