使用多个字段键创建模型关联

时间:2013-12-12 03:43:46

标签: mysql ruby-on-rails ruby

我在创建两个表之间的关系时遇到问题,产品和收藏夹之间的表结构,

表产品包括id,name,code,sub_code,size。收藏夹表由id,code,sub_code,user_id组成。

为什么我没有使用id作为关联的问题是,当有新产品时,整个产品表将被截断并且将导入新的产品列表。因此,使用id作为关联将无法正常工作。

有没有办法如何使用代码和sub_code作为关系在这些表之间建立关联?

感谢

1 个答案:

答案 0 :(得分:0)

请参阅:http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#method-i-belongs_to 你可以这样做:

belongs_to :product, ->(){where("products.sub_code=favorites.sub_code")}, foreign_key: :code, primary_key: :code

不要忘记将索引添加到您正在构建关系的所有字段中。