Rails many to many 上关于 ID 的一个小疑惑

luffycn · 2015年02月03日 · 最后由 alixiaomiao 回复于 2015年02月03日 · 1666 次阅读

文档 http://guides.rubyonrails.org/association_basics.html

2.6 The has_and_belongs_to_many Association 部分

create_table :assemblies_parts, id: false do |t|
  t.belongs_to :assembly, index: true
  t.belongs_to :part, index: true
end

这里 id: false,为何要设置为 false 了?不允许表中 id 字段的存在嘛? 我把这个设置去掉,在有 ID 字段的情况下,貌似也能走通

不知道为何这里要特意弄成 false. 很容易让人误解,是不是一定要 false 才行

主键在这里没用,你不回根据 id 去查询 assemblies_parts 表。

能跑通當然是能跑通,不過是完全多餘的

@MrPasserby @blacktulip 的确自己是不会主动去查这个表,只是我用 rails_admin gem,或者一些相关 gem 时,访问某些页面时,会提示找不到该表 id 的错误

还是 MongoID 中的 has_and_belongs_to_many 好用,不用连接表了,而且中间过程也做好了。我试着用 ActiveRecord + Postgresqlhas_and_belongs_to_many 搞出 MongoID 那样的,由于技术不行,失败了。 😪

需要 登录 后方可回复, 如果你还没有账号请 注册新账号