Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何在rails的表列中保留哈希值_Mysql_Ruby On Rails_Hash - Fatal编程技术网

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

Mysql 如何在rails的表列中保留哈希值,mysql,ruby-on-rails,hash,Mysql,Ruby On Rails,Hash,我对rails很陌生。我有一个表,其中包含所有用户的基本信息,如 用户(id、姓名、电子邮件) 现在,我试图将这些用户的一些附加信息保存在一个单独的表中,如 用户详细信息(id、用户id、附加信息) 我已创建此用户详细信息表。现在我尝试保留一些默认记录以供检查。如何在附加信息中保留用户附加详细信息的散列值,如“用户详细信息”表的“附加信息”列中的“我的附加详细信息是用户的(职务、薪水、prjtname)” 另外,对于用户详细信息表的附加信息列我必须给出的数据类型。请提出一些建议 该列的数据类型必

我对rails很陌生。我有一个表,其中包含所有用户的基本信息,如

用户(id、姓名、电子邮件) 现在,我试图将这些用户的一些附加信息保存在一个单独的表中,如

用户详细信息(id、用户id、附加信息)

我已创建此用户详细信息表。现在我尝试保留一些默认记录以供检查。如何在附加信息中保留用户附加详细信息的散列值,如“用户详细信息”表的“附加信息”列中的“我的附加详细信息是用户的(职务、薪水、prjtname)”


另外,对于用户详细信息表的附加信息列我必须给出的数据类型。请提出一些建议

该列的数据类型必须为文本,以便在迁移中可以指定:

add_column :user_details, :additional_info, :text
然后,在您的模型中,您必须指定此列将包含哈希,并使用serialize命令执行此操作:

class UserDetail < ActiveRecord::Base
  serialize :additional_info

从MySQL 5.7.8开始,就支持原生JSON数据类型,因此保存哈希更直接,可以进行搜索,而且更多:

另一种选择是在模型上使用。迁移将有如下内容:

create_table :events do |t|
  t.json 'payload'
end

不知道“连载”+1最好添加一个代码示例(以防将来链接中断)。
create_table :events do |t|
  t.json 'payload'
end