С точки зрения удобства сопровождения кода, даже если вы захотите ограничить количество категорий, которые пользователь может выбрать до 3, прямо сейчас, вы можете не захотеть кодировать его с этим ограничением. Вы будете пинать себя позже, когда захотите увеличить его до 5 или уменьшить его до 1. Я бы предложил просто использовать has_and_belongs_to_many
с таблицей соединений (вам не нужно :through
, потому что из того, что я могу скажем, вам не нужно соединение модель , просто таблица соединения). Использование HABTM автоматически использует таблицу соединений, поэтому вам не нужно беспокоиться о написании кода для этого. Просто убедитесь, что вы правильно назвали объединяющую таблицу и ее столбцы.
Что касается фактического ограничения пользователя только 3 категориями, просто реализуйте это ограничение в представлении / контроллере (то есть ограничьте пользовательский интерфейс, чтобы они не могли выбрать больше 3).
Я уверен, что вы уже прочитали это, но если нет, вот документы для HABTM.