2014-09-01 52 views
1

我发现很多关于ActiveRecordhas_many关系的主题,但是我还没有找到我正在寻找的东西。基于普通领域的导轨关系

我有两个表,每个表都有列xyz_id。此ID是我订阅的API服务中的对应ID。

我想通过这些相应的ID在每个表上的相应列有has_many关系。这样,如果table_1中的项目的xyz_id是“abcdefg”,我可以执行类似table_1.relation的操作,它将返回table_2中的所有元素并使用匹配的xyz_id。我可以在整个代码中利用ActiveRecord并利用查询,但我认为必须有更好的方法。有什么想法吗?

编辑:我一个字。

+0

我也意识到,我可以在模型上添加一个方法来允许这一点,但理想情况下,我希望能够与所有与标准材料相关的铁轨关系魔术一起出现。 – Borromakot 2014-09-01 07:43:41

回答

1

的ActiveRecord,您可以指定任意fkeys当你定义的关系,就像这样:

class Assembly < ActiveRecord::Base 
    has_and_belongs_to_many :parts, 
          foreign_key: :xyz_id 
end 

class Part < ActiveRecord::Base 
    has_and_belongs_to_many :assemblies, 
          foreign_key: :xyz_id 
end 

来源:http://guides.rubyonrails.org/association_basics.html