Хранение списка, разделенного запятыми, в столбце базы данных, как получить и установить?

#ruby-on-rails #ruby

#ruby-on-rails #ruby

Вопрос:

Я хочу сохранить список, разделенный запятыми, в столбце базы данных, например:

 234234,2134234,2453245,2345
  

Затем я хочу получить этот список и использовать его в запросе типа:

 u = User.find("where some_id in (?)", my_comman_seperated_list)
  

Тогда я должен преобразовать это в массив, верно?

Ответ №1:

Определите свой столбец как text , а в ActiveRecord объявите, что столбец сериализован:

 serialize :my_column
  

Теперь этот столбец будет сохранен как [234234,2134234,2453245,2345] , и когда вы получите этот объект, атрибутом будет массив, который вы можете передать в свою находку.

Ответ №2:

Есть ли причина, по которой это должно быть в столбце, а не в виде отдельной таблицы? Возможно, имеет смысл создать новую модель для данных, хранящихся в этом столбце, а затем сохранить одно значение в каждой строке, которое belongs_to :user .

Комментарии:

1. Я отменяю нормализацию по какой-то причине, да 🙂