Ruby / Rails лучший способ передать специфичные для модели атрибуты для группирования - PullRequest
0 голосов
/ 03 января 2012

Я пытаюсь добавить некоторые функциональные возможности группирования списков на стороне клиента в мое приложение Rails. По сути, это представление списка пользователей, в котором модель пользователя будет иметь различные группируемые атрибуты, такие как электронная почта, имя, заголовок и т. Д. Я думал о том, чтобы модель включала def groupable, который бы возвращал хеш, содержащий всю эту модель Группируемые значения экземпляра. Ключи будут фиксированными, известные строки, которые могут быть локализованы из вида. например user.name= "Group by name", user.title= "Group by title" и т. Д. *

Контроллер будет извлекать пользовательские модели в def index, как обычно, но он также будет вызывать groupable для каждого и создавать объект, который представление может использовать для генерации переменной JavaScript / хеш / JSON, которую я мог бы использовать от JavaScript / jQuery до группировки на стороне клиента. Я также могу предварительно сгруппировать список в представлении, так как по умолчанию все пользователи группируются по буквенно-цифровому имени.

Идея состоит в том, чтобы разрешить группирование на стороне клиента, которое не требует обновления страницы.

Я ожидаю, что обычный метод использования партиала и некоторый AJAX может сработать, но я надеялся, что список пользователей не нужно будет перезагружать при каждом изменении группировки.

Спасибо.

1 Ответ

0 голосов
/ 10 января 2012

Я перешел к реализации динамической, чистой реализации JavaScript + jQuery для группировки списков без необходимости, чтобы Rails обслуживал группировку контента для представления.Это гораздо более гибкий способ, и я вроде считаю JS требованием к более продвинутым функциям, таким как группировка и другие функции, поэтому, если JS отключен, список будет работать нормально, с ним вы получите группирование, выделение, мгновенный поиск на стороне клиента.и т.д ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...