相关疑难解决方法(0)

如何在不设置直接belongs_to的情况下设置一种"belongs_to:through"?

我知道"belongs_to:through"是无效的,它只是我试图表达我想要达到的目标,只是忍受我一段时间......

这就是我得到的:

class League
  has_many :divisions
end

class Division
  belongs_to :league
  has_many :teams
end

class Team
  belongs_to :division
  has_many :players
end

class Player
  belongs_to :team
end
Run Code Online (Sandbox Code Playgroud)

现在,为了制作"棒球卡"视图表格,我需要:

name
team.name
team.division.name
team.division.league.name
Run Code Online (Sandbox Code Playgroud)

那么,有没有办法设置"belongs_to:through"直接从'players_controller'访问'division.name'而没有'team'.字首 ??我必须从"播放器"到"分区"访问许多列,因此寻找一种方法来"直接"访问这些列.

一个选项是在'players'表中包含'division_id'列,但我被告知它会破坏关系数据模型,因为如果数据选择功能没有得到妥善处理,它将允许不一致(例如玩家A在A组,在A组,但是玩家A的division_id列设置为B组.

是否有可能形成一个"象征性的联系",例如"分裂"现在指的是'team.division','联盟'现在指的是'team.division.league'?

或者,每次使用完整路径是唯一真正的选择吗?

希望有人能提供帮助.

Br,Jonas

activerecord ruby-on-rails

33
推荐指数
3
解决办法
2万
查看次数

标签 统计

activerecord ×1

ruby-on-rails ×1