Rails中为apps表新增requested_game关联后如何配置模型关系?
问题解答
1. 是否需要创建requested_game模型?
不需要。你新增的requested_game_id字段仍然指向已有的games表,只是关联别名和原有game关联不同,无需额外创建新的模型实体。
2. 模型关联配置
App模型(app/models/app.rb)
保留原有belongs_to :game配置,新增自定义关联配置如下:
# 原有关联保留 belongs_to :game # 新增 requested_game 关联 belongs_to :requested_game, class_name: 'Game', foreign_key: 'requested_game_id' # 如果业务允许该字段为空,可补充 optional: true 参数 # belongs_to :requested_game, class_name: 'Game', foreign_key: 'requested_game_id', optional: true
Game模型(app/models/game.rb)
保留原有has_many :apps配置,新增反向关联,自定义关联名避免和原有apps关联冲突,示例如下:
# 原有关联保留 has_many :apps # 新增反向关联:作为 requested_game 关联的所有App,关联名可根据业务自定义修改 has_many :requested_apps, class_name: 'App', foreign_key: 'requested_game_id'
内容的提问来源于stack exchange,提问作者MrRaknum
相关产品推荐
相关产品推荐

