将数组存储在rails中的ruby中的数据库中

时间:2010-08-14 17:54:14

标签: ruby-on-rails database

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

我觉得我已经看到了这一点,但我很难完成实施。

2 个答案:

答案 0 :(得分:21)

ActiveRecord::Base.serialize。直接来自rails docs:

class User < ActiveRecord::Base
  serialize :preferences
end

user = User.create(:preferences => { "background" => "black", "display" => large })
User.find(user.id).preferences # => { "background" => "black", "display" => large }

答案 1 :(得分:4)

您可以设置一个States表,其中User和State之间也有多对多的关系。这将使查询更有效。