Поддержание javascript «зеркала» вашего пользовательского объекта - PullRequest
0 голосов
/ 10 декабря 2010

Предполагается, что у вас есть пользователь, который вошел в систему и имеет определенные атрибуты - имя, псевдоним, подписчики и т. Д., Которые хранятся в серверной части

Вы бы широко использовали эти атрибуты при отображении javascript, и было бы очень полезно иметь зеркальный объект в javascript.

Как бы вы это сделали? Я уверен, что это очень распространенная проблема.

Ответы [ 3 ]

2 голосов
/ 10 декабря 2010

Вот способ, которым вы могли бы сделать это.Ваш файл application.js может выполнить AJAX-вызов пользовательского контроллера, который возвращает @current_user, сериализованный в JSON.

var currentUser;

var success = function(user) {
  currentUser = user;
}

$.get("/users/current/", success);

В вашем контроллере:

def current
  respond_to do |format|
    format.js { render :json => @current_user }
  end
end
1 голос
/ 10 декабря 2010

Взгляните на плагин js-data-helper , который дает вам помощников рельсов, которые сбрасывают атрибуты данных в элементы DOM.но он имеет много функций и хорошо документирован.Кроме того, если вы хотите использовать нестандартное решение, вы можете получить некоторые подсказки, увидев, как это делается с этим плагином.

0 голосов
/ 10 декабря 2010

Сохраните его в глобальной коллекции хешей, поместив некоторый javascript в 'views / layouts / application.html.erb'.

Это было бы моим предположением =)

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