我正在建立一個功能,當一個人註冊一個帳戶,我們會自動填充他們的帳戶與默認類別和項目,讓他們開始。種子db與特定的記錄集與關聯的記錄
此外,他們可以選擇購買額外的類別集以隨時添加/填充他們的賬戶。
我想我的選擇是:
1)不知何故seeds.rb 2使用)在YAML文件中存儲這些記錄並加載在帳戶創建時 3)存儲在數據庫中這些記錄作爲默認設置並克隆/複製它們。
任何幫助讚賞瓦特/代碼示例讓我開始。
我正在建立一個功能,當一個人註冊一個帳戶,我們會自動填充他們的帳戶與默認類別和項目,讓他們開始。種子db與特定的記錄集與關聯的記錄
此外,他們可以選擇購買額外的類別集以隨時添加/填充他們的賬戶。
我想我的選擇是:
1)不知何故seeds.rb 2使用)在YAML文件中存儲這些記錄並加載在帳戶創建時 3)存儲在數據庫中這些記錄作爲默認設置並克隆/複製它們。
任何幫助讚賞瓦特/代碼示例讓我開始。
這是我會做: 有一個標誌數據庫,以確定 Store中的數據在yaml
文件(例如,db/users.yml
),並做到:
def populate_user
user.update_attributes(YAML.load(Rails.root + 'db/users.yml')) if first_sign_in == 0
end
然後你就可以將它添加到after_create
掛鉤,所以它只被稱爲user
我會做不同的。我會在控制器和模型之間有一個「註冊」表單對象。讓它在首次構建用戶的同時構建一些默認類別和項目。如何隔離這些默認項目的屬性取決於它們的複雜程度。如果它們很簡單,那麼表單對象中的默認散列就足夠了,如果它們很複雜,則可以從YML中引入。
當我已經在過去做到了這一點 - 有這需要多個對象創建我有一個RegistrationsController
,一個RegistrationForm
對象,採取PARAMS和驗證一切,還負責知道該怎麼保存註冊,有時在中間Registrar
對象(結構通常),它具有回調的所有邏輯。 registrations_controller
初始化一個registrar
,發送一條消息register(registration_form)
。
從長遠來看,這會導致職責分離和更簡潔的代碼。
提供的答案是明確的選項,我試驗過。但是,我決定走一條不同的路線。我意識到我需要管理這些'模板'記錄,而數據庫將是最簡單的。
1)我在表'is_template'上設置了一列來標記將用於種子其他帳戶的記錄。
2)創建一個after_create
回叫,以使用這些記錄對賬戶進行種子處理。
3)爲了讓我用amoeba gem,讓我複製的記錄及其相關記錄偉大的工程,因爲他們中的一些有has_many
關係的事情變得更簡單。
到目前爲止,這一直非常成功 - 我也爲自己和非技術人員更新記錄提供了方法。
我將如何處理YAML文件中的關聯記錄?詳細我創建類別與某些項目相關聯。 –