2010-05-18 2 views

ответ

6

Нет ничего плохого в использовании habtm per se. Причина, по которой многие люди не используют такую ​​ассоциацию, заключается в том, что они используют has_many: вместо этого. Зачем? Потому что он более универсален. В то время как HABTM «скрывает» промежуточную таблицу, при использовании has_many: через посредника человек - это ресурс сам по себе - что обычно хорошо (если ни для чего, вы можете установить временную привязку отношений). Вы столкнетесь со многими ситуациями, когда вам нужно будет добавить какое-то поведение или атрибуты к таким отношениям (при разработке системы в ресурсо-ориентированном режиме).

+0

Я начинаю видеть значение этого сам ... добавленная гибкость действительно выгодна по мере изменения спецификации. Любопытно, однако: если бы у меня были отношения habtm между Пользователями и Пищами, но теперь мне нужна таблица-посредник, что бы я назвал промежуточной таблицей? Это целый новый ресурс, называемый meal_user или что-то в этом роде? – dmonopoly

+0

Я понимаю, что это более старый вопрос, но обычно вы называете это чем-то другим с атрибутами и целью их хранения, так как теперь это новый ресурс. Например, если бы это был рейтинг еды из 5, который мог бы содержать ресурс «рейтинг». –

Смежные вопросы