Хранение массива в базе данных в ruby ​​on rails - PullRequest
12 голосов
/ 14 августа 2010

У меня несколько уникальная ситуация: если бы у меня была форма с флажком для каждого штата (как в штатах США, скажем, в 50 штатах), я действительно не хочу добавлять 50 столбцов в свою базу данных, как можно Я храню их в массиве в одном столбце?

Я чувствую, что видел, как это сделано, но мне трудно разобраться в реализации.

Ответы [ 2 ]

21 голосов
/ 14 августа 2010

ActiveRecord :: Base.serialize . Прямо с рельсов документы:

class User < ActiveRecord::Base
  serialize :preferences
end

user = User.create(:preferences => { "background" => "black", "display" => large })
User.find(user.id).preferences # => { "background" => "black", "display" => large }
4 голосов
/ 14 августа 2010

Вы также можете создать таблицу состояний, в которой отношения между пользователем и государством также могут отображаться многими ко многим.Это сделает запросы более эффективными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...