rails 3.2中的条件has_many关系

时间:2013-02-06 12:15:03

标签: ruby-on-rails conditional has-many relation

我从第三方获取具有自己唯一密钥的数据。

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)

但这不起作用。

提前致谢

0 个答案:

没有答案