Вы можете создать свое собственное представление и отобразить его, когда приложение запустится, и скрыть его таймером. Пожалуйста, не задерживайте запуск приложения как свою плохую идею
has_and_belongs_to_many предназначен для простых many-many отношений.
has_many: через, с другой стороны, предназначен для косвенных связей "один ко многим" или many-many отношений со свойствами.
, Если Вы только ищете простые many-many отношения, я не вижу причины не использовать has_and_belongs_to_many.
Пример many-many отношения:
Пользователь принадлежит нулю или большему количеству групп, и у группы есть нуль или больше участников (пользователи).
Пример many-many отношения со свойствами:
Пользователь принадлежит нулю или большему количеству групп, и у группы есть нуль или больше участников с разрядами.
, Например, Alice могла бы быть Администратором в Группе A и Модератором в Группе B. Можно держать это свойство в объединяющей таблице.
Пример косвенная связь "один ко многим":
категория А имеет нуль или больше подкатегорий, и каждая подкатегория имеет нуль или больше объектов.
категория А поэтому имеет нуль или больше объектов через его подкатегории.
Рассматривают эти категории:
Еда в †’ Фрукты, Овощи
Фрукты в †’ Apple, Оранжевая, и т.д.
Овощи в †’ Морковь, Сельдерей, и т.д.
поэтому:
Еда в †’ Apple, Оранжевая, Морковь, Сельдерей, и т.д.
Нет ничего неправильно с использованием has_and_belongs_to_many
, если Вы не требуете модели соединения. Я только что использовал его сам на недавнем проекте.
Я никогда не использовал бы HABTM не ни из-за какой озабоченности по поводу элегантности, но потому что я могу всегда предполагать желать добавить данные к отношениям в будущем, даже если я не вижу точку теперь. Быть ленивым я хотел бы иметь возможность просто добавить столбцы к соединению вместо того, чтобы иметь необходимость переделать отношения и затем добавить столбцы.