Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.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
Ruby on rails 在RubyonRails中存储数据库中的数组_Ruby On Rails_Database - Fatal编程技术网

Ruby on rails 在RubyonRails中存储数据库中的数组

Ruby on rails 在RubyonRails中存储数据库中的数组,ruby-on-rails,database,Ruby On Rails,Database,我有一个独特的情况,如果我有一个表格,每个州都有一个复选框(就像在美国的州,所以说50个州),我真的不想在我的数据库中添加50列,我如何将它们存储在一个数组中的一列中 我觉得我已经看到了这一点,但我很难把手指放在实现上。。直接从rails文档: class User < ActiveRecord::Base serialize :preferences end user = User.create(:preferences => { "background" => "bl

我有一个独特的情况,如果我有一个表格,每个州都有一个复选框(就像在美国的州,所以说50个州),我真的不想在我的数据库中添加50列,我如何将它们存储在一个数组中的一列中

我觉得我已经看到了这一点,但我很难把手指放在实现上。

。直接从rails文档:

class User < ActiveRecord::Base
  serialize :preferences
end

user = User.create(:preferences => { "background" => "black", "display" => large })
User.find(user.id).preferences # => { "background" => "black", "display" => large }
class用户{“背景”=>“黑色”,“显示”=>large})
User.find(User.id).preferences#=>{“背景”=>“黑色”,“显示”=>large}

您还可以设置一个状态表,其中包含用户和状态之间的多对多关系。这将使查询更加高效。

我喜欢你的答案,只是现在很难将数组保存到列中。如果你使用的是现有列,可能需要将列类型更改为:text以适合你的数组。(检查你的长度。)你可以使用
states*;'
状态为.split';',并确保分号不会出现在
状态中。