Сериализованные флажки в Rails - PullRequest
0 голосов
/ 18 июля 2011

Я хотел бы добавить 7 флажков (логических значений) к одной из моих моделей.

Есть ли способ сделать что-то вроде массива bools в моей БД вместо добавления 7 разных столбцов вручную?

О, я использую базу данных pg

Ответы [ 2 ]

1 голос
/ 18 июля 2011

В зависимости от того, как часто вы хотите, чтобы эти bool редактировались (в форме в ajax и т. Д.).Возможно, вам лучше остаться с отдельными колонками.Просто потому, что f.check_box: column_name против f.object.column_name.each_pair ... Подобная ситуация в контроллере при отправке их обратно. Единственная причина, по которой я могу добавить сериализованные 7 флажков в хеш и сохранить их водин столбец, если ваши 7 флажков могут быть изменены динамически и тому подобное.

0 голосов
/ 23 сентября 2012

Да.

CREATE TABLE array_test (
     bools bool[]
);

Не говорю, что рекомендую этот подход. Обычно вам лучше использовать таблицу сопоставления или несколько столбцов по причинам индексации, семантической ясности и обеспечения надлежащей целостности данных. Однако, если вы взвешиваете это, я предполагаю, что вы знаете об опасностях, иначе вы усвоите свой урок. Однако в некоторых редких случаях это имеет смысл ...

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