1

我正在使用自己的唯一密钥从第三方获取数据。

Level1, data_provider_id Level2, level_1_id, data_provider_id Level3,level_2_id, data_provider_id

level1.rb 的关系

  has_many :level2s, :primary_key => :data_provider_id 
  has_many :level3s, :through => :level2s

level2.rb 的关系

 has_many :level3s, :primary_key => :data_provider_id

如果我想创建自己的关卡,我必须分配一个 data_provider_id 才能使关系正常工作。我可以采用负数或我知道第 3 方永远不会使用的范围,但我不喜欢这种方法。当 data_provider_id 为 nil 时,有没有办法让关系像默认方式一样工作?

我试过了:

  has_many :level2s, :primary_key => (:data_provider_id == nil ? :id : :data_provider_id)

但这不起作用。

提前致谢

4

0 回答 0