Простой ответ: рельсы его не поддерживают :) Это может звучать как умный ответ, но позвольте мне объяснить. Во-первых, вот документация .
Мы хотим думать, что category.site_ids
- это обычный массив, но это не так. Чтобы вы могли обращаться с ним как с массивом и иметь всю магию базы данных (созданные, обновленные, уничтоженные записи) за кулисами, разработчики рельсов должны переопределить методы массива. Массивы в ruby имеют несколько десятков методов, и создание ассоциаций коллекций (has many, habtm) для всех из них будет нецелесообразно.
Теперь вы можете сделать category.sites << site
, и это работает. Так что нет никаких технических проблем с тем же самым для идентификаторов. Это может быть выбор, или, возможно, никто еще не закодировал его:)