我在用戶模式下的關聯:爲什麼在嘗試使用數組時遇到活動記錄錯誤?
has_and_belongs_to_many :friends, :class_name => 'User', :foreign_key => 'friend_id'
我在USER_USERS表下面的唯一性約束:
UNIQUE KEY `no_duplicate_friends` (`user_id`,`friend_id`)
在我的代碼,我檢索用戶的好友 - >朋友= user.friends。朋友是一個數組。
我有一個場景,我想將所有這些朋友的用戶添加到朋友陣列。例如:
friends << user
不過,我得到以下錯誤:
ActiveRecord::StatementInvalid: Mysql::Error: Duplicate entry '18-18' for key 'no_duplicate_friends': INSERT INTO `users_users` (`friend_id`, `user_id`) VALUES (18, 18)
是怎麼回事?
用戶不是數組 – keruilin 2010-05-19 23:08:48
'friends'是'user.friends'。好。所以你試圖把'user'添加爲他自己的'friend'? – 2010-05-19 23:25:28
是的。如果我試圖保存到數據庫,我想要拋出一個異常。但是,我只是想將用戶自己添加到他的一系列朋友中,作爲我想傳遞給控制器的一些業務邏輯的一部分。不保存到數據庫。 – keruilin 2010-05-19 23:50:04