Mongoid has_and_belongs_to_many没有'_ids'后缀?

时间:2015-01-04 16:19:40

标签: ruby-on-rails mongodb mongoid mongoid4

在以下示例中:

class Band
  include Mongoid::Document
  has_and_belongs_to_many :tags
end

class Tag
  include Mongoid::Document
  field :name, type: String
  has_and_belongs_to_many :bands
end

对象存储如下:

# The band document.
{
  "_id" : ObjectId("4d3ed089fb60ab534684b7e9"),
  "tag_ids" : [ ObjectId("4d3ed089fb60ab534684b7f2") ]
}

# The tag document.
{
  "_id" : ObjectId("4d3ed089fb60ab534684b7f2"),
  "band_ids" : [ ObjectId("4d3ed089fb60ab534684b7e9") ]
}

是否可以将字段tag_ids重命名为tags,将band_ids重命名为bands?感谢

1 个答案:

答案 0 :(得分:0)

您可以使用以下语法来使用特定的外键名称:

class Band
  include Mongoid::Document
  has_and_belongs_to_many :tags, foreign_key: "bands"
end

class Tag
  include Mongoid::Document
  field :name, type: String
  has_and_belongs_to_many :bands, foreign_key: "tags"
end

但请避免使用可能与您的可用关系冲突的外键名称。