Как я ПОМЕЩАЮ данные в направляющие с помощью JQuery

Я стараюсь разрабатывать приложения так, чтобы они были устойчивыми перед лицом несчастных случаев - либо сбоев (непреднамеренных операций, таких как нажатие в неправильном месте), либо ошибок (когнитивных ошибок, таких как нажатие кнопки «ОК» или «Отмена» в диалоговом окне). Вот несколько способов сделать это:

  1. бесконечное (или, по крайней мере, многошаговое) undo / redo
  2. интеграция документации с интерфейсом посредством динамических всплывающих подсказок и других контекстно-зависимых средств коммуникация (одна статья, которая особенно актуальна, касается «Сюрприз, объяснение, вознаграждение» (прямая ссылка: SER ) - использование типичных психологических реакций на неожиданное поведение для информирования пользователей)
  3. Включите состояние системы в указанную документацию (используйте данные текущего пользователя в качестве примеров и сделайте документацию конкретной, используя данные, которые они могут видеть прямо сейчас )
  4. Ожидается ошибка пользователя. Если есть вероятность, что кто-то попытается записать в: \, когда диск не установлен, установите тайм-аут, чтобы система могла корректно выйти из строя, и запросите другое место. Сохраняйте данные в памяти, пока они не будут защищены на диске и т. Д.

Это сводится к двум основным вещам: (1) программа защиты и (2) информирование пользователя как можно лучше. Если интерфейс системы прост в использовании и ведет себя в соответствии с их ожиданиями, то они с большей вероятностью узнают , какую кнопку нажимать, когда появляется раздражающее диалоговое окно.

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

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

49
задан tvanfosson 25 May 2009 в 09:13
поделиться

3 ответа

PUT и DELETE поддерживаются не всеми браузерами, RubyOnRails поддерживает передачу дополнительного параметра с вашими данными под названием _method , который будет указывать, как RoR будет обрабатывать запрос.

$.ajax({
          type: "POST",
          url: '/admin/pages/1.json',
          data: { _method:'PUT', page : {...} },
          dataType: 'json',
          success: function(msg) {
            alert( "Data Saved: " + msg );
          }
});
85
ответ дан 7 November 2019 в 11:26
поделиться

Хорошо, на самом деле в моих данных JSON не было ключа страницы, моя ошибка. Вот почему он неправильно разбирался. Но теперь я получаю строку «[object Object]» в качестве значения для ключа страницы вместо хорошо проанализированного json-объекта.

Где мне искать: JQuery или Rails?

EDIT:

Я решил, что проблема с преобразованием json-объекта в строку с помощью скрипта, найденного здесь: www.json.org/js.html:

$.ajax({
      type: "PUT",
      url: '/admin/pages/1.json',
      data: { page : JSON.stringify( {...} ) },
      dataType: 'json',
      success: function(msg) {
        alert( "Data Saved: " + msg );
      }
});

На стороне рельсов должен быть установлен гем json. В контроллере:

 params[:page] = JSON.parse params[:page] if params[:page].is_a? String
5
ответ дан 7 November 2019 в 11:26
поделиться

У меня была аналогичная проблема [объект Object] с jQuery / rails, но с HTML, а не с JSON. Возможно, это поможет -

параметр [объект Object]

data: { lesson: { date: drop_date } }

параметр урок [дата]

data: { "lesson[date]": drop_date }

надеюсь, что это поможет -

1
ответ дан 7 November 2019 в 11:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: