2010-12-08 25 views
12

我對軌道很陌生。我有一個表格保存所有用戶的基本信息,如如何保持軌道中表格列的哈希值

用戶(ID,姓名,電子郵件) 現在我想保持這些用戶的一些額外的信息在單獨的表像

user_details( id,user_id,additional_info)

我已經創建了這個user_details表。現在我嘗試保留一些默認記錄以供檢查。如何將附加信息的散列值保存在additional_info中,就像我在User_details表的additional_info字段中附加的詳細信息是用戶(指定,薪水,prjtname)一樣。

還什麼數據類型我不得不放棄了User_details表的這個ADDITIONAL_INFO列。請給一些建議..

回答

26

該列的數據類型必須是文本,以便在你的遷移,你可以指定:

add_column :user_details, :additional_info, :text 

然後在你的模型,你必須指定此列將包含一個散列和你可以用serialize命令來做到這一點:

class UserDetail < ActiveRecord::Base 
    serialize :additional_info 

之後,你可以保存散列信息。

@ud = UserDetail.new 
@ud.additional_info = {:salary => 1000000} 
@ud.save 
+0

不知道「序列化」。 +1 – Faisal 2010-12-08 11:31:11