У нас есть веб-приложение, которое обслуживает типичный социальный контент (блоги/форумы/потоки и т. Д.).Rails дизайн/кодирование
Все данные могут быть отмечены знаком города. То есть если сообщение в блоге специфично для Нью-Йорка, оно будет отмечено так.
Задача состоит в том, чтобы показать только городскую информацию (по всему сайту), если пользователь установил предпочтение города и покажет все остальным.
Так что я должен добавить 'и city == current_city', если city_specifc_view? всем моим искателям во всех моих модельных классах, которые являются ночной кобылой (особенно, поскольку существует риск изменения этой логики).
Мне интересно, как правильно применять эту логику. Могу ли я сделать это центральным местом (например, переопределить поиск по умолчанию), а не if/else по всем моделям. Является ли обезьяна патчей ActiveRecord опцией?
Спасибо Fer. Вы хорошо это понимаете. Я думал, могу ли я вообще избежать отфильтрованных данных из БД, добавив запрос в фильтр. Я справился с этим для искателей, исправляя AR с помощью with_scope. Но все же решать вопросы, возникающие для ассоциаций. – 2009-05-26 06:28:52
Я избегаю связанных с ассоциацией запросов с включенными, НО есть ловушка, если ваша БД локальна, более мелкие (индексированные) запросы могут быть лучше одного большого (в случае с объединениями), если он удален, тем меньше сетевых соединений с ваш db тем лучше. Надеюсь, что это поможет вам, но, как всегда: сравнивайте свои решения, прежде чем выбирать! – Oinak