Простые в использовании изолированные виджеты на рельсах - PullRequest
6 голосов
/ 04 июня 2009

Я разрабатываю "игровую платформу" на ruby ​​на рельсах. Это не 2D или 3D интенсивная игра, а скорее игра-викторина, представьте себе типичную викторину на Facebook или даже игры типа «насколько велик ваш мозг». Студенты будут использовать эту платформу для разработки собственных идей. Суть в том, чтобы создать серию виджетов, которые они могут просто разместить на странице, и заставить их работать с данными и CSS.

Для этого я начал создавать виджеты, которые для интеграции в страницу вы просто делаете что-то вроде

<%= widget_name widget_params %>

Достаточно легко для них, но для этого мне нужно:

  • Методы в помощниках, которые просто отображают частичные значения
  • Частицы с html-элементами, помеченными id
  • функции в файле javascript, которые ищут этот идентификатор на странице и, если найдены, выполняют свою работу (поскольку большинство виджетов так или иначе используют JS)
  • Поддержка данных в модели.

Например, мой таймер - это функция javascript + партиал, в котором game.timeout является моделью игры с таймаутом для столбца для каждой игры. и все, что обернуто в помощнике, так что пользователь просто использует <%= timer @game %>

Обратите внимание, что виджеты должны изменить страницу или, по крайней мере, отправить какой-то сигнал контроллеру страницы, чтобы сообщить ему о глобальных изменениях. Например, виджет таймера не только завершает сам себя, но и должен сообщать игровому контроллеру, что игра также завершена (поэтому они являются частями на одной странице, а не в фреймах).

Интерфейс для использования студентами (всего один вкладыш) прост, и мне это нравится, но тот факт, что каждый виджет должен касаться очень многих мест, позволяет мне легко развертывать новые виджеты в каркасе и в целом выглядит ужасно дизайн.

Также я только что (1 час назад) обнаружил Extjs и, поскольку я буду разрабатывать GPL, я обдумываю это.

Есть ли какой-нибудь способ сделать extjs или любой другой виджет, созданный вручную или предоставленный более изолированным, но при этом иметь возможность изменять более глобальный контекст?

Ответы [ 2 ]

4 голосов
/ 08 августа 2010

Вы уже обнаружили Apotomo ? Это управляемые событиями виджеты для Rails с необязательным контролем состояния - очень похожи на GUI.

1 голос
/ 09 июня 2009

В производственном приложении компоненты Rails недовольны , но если ваше приложение предназначено для обучения и студенты не будут изменять компоненты, то я не вижу, почему бы не используйте их .

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