在Google上呆了一整天,但找不到答案。 :\Rails:擁有並且屬於很多(HABTM) - 創建關聯而不創建其他記錄
我在用戶和Core_Values之間有HABTM關係。
class CoreValue < ActiveRecord::Base
has_and_belongs_to_many :users
class User < ActiveRecord::Base
has_and_belongs_to_many :core_values
在我的控制,我需要做的兩回事:
- 如果CoreValue不存在,創建一個新的,它與給定用戶ID相關聯,
- 假設我知道一個特定CoreValue確實存在,沒有創建任何新CoreValues或用戶
#1建立關聯,我得到這個工作:
User.find(current_user.id).core_values.create({:value => v, :created_by => current_user.id})
這創建了一個新的CoreValue:value和:created_by並創建關聯。
對於#2,我嘗試了一些東西,但似乎不能創建關聯只。
感謝您的幫助!
謝謝!不知道core_values是一個數組 - 當然不知道添加到數組會創建一個INSERT。甜!如果記錄不存在,只能創建關聯的任何方式?我想看看數組方法,我猜?也許是current_user.core_values.include? – jmccartie 2011-01-19 01:16:02
@jmccartie這可能是一種做法,是的。爲了澄清,我覺得我應該補充一點,`core_values`不是* always *數組 - 如你所知,你可以調用`core_values.create`這不是一個有效的數組方法。一個更好的定義是它「作爲一個陣列」。 – vonconrad 2011-01-19 01:38:09