#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. Я отменяю нормализацию по какой-то причине, да 🙂