Activerecord与自定义键的关系

时间:2014-02-03 15:37:03

标签: ruby-on-rails activerecord

_categoriesI尝试使用Activerecord重新创建一些遗留数据库关系。我是一个Activerecord新手,顺便说一下我解决了所有问题,直到现在除了一些关键不是ID的关联。

我有两张桌子:

产品

  • ID
  • 模型
  • 名称

DataCategory

  • ID
  • 名称

此处的关联由" type"和"树":如何与ActiveRecord创建此关联?

我尝试:

has_many :data_categories, foreign_key: 'type', primary_key: 'tree' 

但它不起作用

2 个答案:

答案 0 :(得分:1)

我认为你需要像这样反向foreign_key和primary_key:

has_many :data_categories, foreign_key: 'tree', primary_key: 'type' 

希望有所帮助

答案 1 :(得分:0)

'type'和'tree'中存储了什么?外键是DataCategory上的数据库字段,它包含产品的唯一ID。主键是Product上包含该唯一ID的数据库字段。默认情况下,它们分别是product_id和id。在您的情况下,假设'tree'包含产品ID,它将是

has_many :data_categories, foreign_key: 'tree'

没有必要指定主键,因为您似乎使用默认的'id'