[英]rails: has_and_belongs_to_many not saving associated objects (null in join table)
[英]Primary key is not allowed in a has_and_belongs_to_many join table
我在遺留代碼中有兩個實體,數據中心和項目之間的多對多鏈接表。 我發現,這真的是一對多的關系。
作為清理關系的第一步,我想在其中一個字段上添加一個唯一索引。
現在我收到以下錯誤:
has_and_belongs_to_many連接表(datacenters_projects)中不允許使用主鍵。
我正在使用在ruby 1.8.7p174和mysql Ver 14.12 Distrib 5.0.77上運行的Rails 2.3.8。
這不是主鍵,它只是一個獨特的索引。 我想這是一個候選鍵,但我還沒有確定它是一個主鍵。
我不知道為什么mysql認為這是一個主鍵。 我不知道為什么ActiveRecord會反對具有主鍵的has_and_belongs_to_many中的鏈接表。
但我真正的問題是,“有沒有什么方法可以在其中一個字段上放置一個唯一索引,而沒有ActiveRecord給我一個錯誤?”
有什么辦法可以告訴add_index這不是主鍵嗎?
我不確定為什么會失敗。 您應該能夠在遷移中使用SQL來解決它,例如:
ActiveRecord::Base.connection.execute("CREATE UNIQUE INDEX project_id_index ON datacenters_projects (project_id)")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.