如何在rails中的表列中保留哈希值

我对rails很新。 我有一张表,包含所有用户的基本信息,如

用户(id,name,email)现在我试图将这些用户的一些其他信息保存在一个单独的表中

user_details(ID,USER_ID,ADDITIONAL_INFO)

我创建了这个user_details表。 现在我尝试保留一些默认记录以供检查。 如何在additional_info中保留用户附加详细信息的哈希值,就像我的附加详细信息是User_details表的additional_info列中的用户(名称,工资,prjtname)一样。

另外,我必须为User_details表的additional_info列提供什么数据类型 。 请提一些建议..

该列的数据类型必须是文本,因此您可以在迁移中指定:

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 

从MySQL 5.7.8开始,支持原生JSON数据类型,因此保存哈希更直接,可以搜索更多:
https://dev.mysql.com/doc/refman/5.7/en/json.html