has_and_belongs_to_many非主键

时间:2013-12-08 03:50:50

标签: sqlite ruby-on-rails-4 ruby-2.0

我正在尝试在名为Folders的表和名为Media的表之间建立关系。文件夹可以包含多个媒体和媒体可以包含在多个文件夹中。经过一些research我发现HABTM关系最好。

但是,我认为这是正确的

  class Media < ActiveRecord::Base
     has_and_belongs_to_many :folders
  end

   class Folders < ActiveRecord::Base
      has_and_belongs_to_many :media
   end

依赖于主键。

虽然我使用内置id作为文件夹和文件的主键,但我需要将此表连接到另一个属性(自生成的guids / uuids)。我有办法在非主键上使用HABTM吗?

1 个答案:

答案 0 :(得分:2)

class Media < ActiveRecord::Base
  has_and_belongs_to_many :folders, :foreign_key => :column_name
end

class Folders < ActiveRecord::Base
  has_and_belongs_to_many :media, :foreign_key => :column_name
end