我正在使用自己的唯一密钥从第三方获取数据。
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)
但这不起作用。
提前致谢