2010-12-08 22 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