我从第三方获取具有自己唯一密钥的数据。
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才能工作。我可以采取负数或范围,我知道第三方永远不会使用,但我不喜欢这种方法。当data_provider_id为nil时,有没有办法让关系像默认方式一样工作?
我试过了:
has_many :level2s, :primary_key => (:data_provider_id == nil ? :id : :data_provider_id)
但这不起作用。
提前致谢