0
membership = Membership.where(user_id: 1, group_id: 1).first
# some other code
membership.update_attributes(admin: true)
生成查詢用途上的關聯的update_attributes /加入模型
UPDATE 'memberships' SET 'admin' = 1 WHERE 'memberships'.'' IS NULL
,這導致錯誤。
它使用'update_attribute(:admin,true)'生成相同的sql。看到我的問題,生成的sql的WHERE子句顯然無效。 – powerboy
更新了答案 – alex
哦,你是對的。 「memberships」表中沒有「id」列。相反,它有一個複合主鍵'(user_id,group_id)'。我認爲連接表不需要'id',所以我在遷移中設置了'id:false'。所以有必要在連接表中添加一個'id'列? – powerboy