Как мне позволить данным в 1 столбце питать содержимое 2-го столбца в Rails 3? - PullRequest
0 голосов
/ 13 января 2011

Скажем, у меня есть список пользователей в левом столбце, сгенерированный <%= current_user.clients %>, а второй столбец по умолчанию пуст.

Однако, когда пользователь нажимает на одну из ссылок, второй столбецстановится заполненным проектами, связанными с этим пользователем - без перезагрузки всей страницы (т.е. с использованием AJAX).

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

Как мне это сделать в Rails?

Ответы [ 2 ]

3 голосов
/ 14 января 2011

Полагаю, вы используете Rails 3 и jQuery (я не очень разбираюсь в прототипе). Легко переключить jQuery для прототипа в Rails 3: https://github.com/rails/jquery-ujs

Для ссылки:

<a href="#" class="first_column_link" data-client-id="<%= client.id %>">Something</a>

Используя JavaScript и jQuery, напишите функцию, которая всасывает ссылки класса first_column_link (пожалуйста, переименуйте что-нибудь более разумное, кстати):

$(function() {
  $('.first_column_link').bind('click', function() {
    $.getJSON('/clients/' + $(this).attr('data-client-id'), function(data) {
      // Populate the second column using the response in data
    });
  });
});

Это не работает в браузерах, которые не поддерживают или иным образом отключили JavaScript. Изящное унижение, вероятно, было бы хорошей идеей, но без большего контекста я не могу посоветовать вам, как лучше всего это сделать.

0 голосов
/ 13 января 2011
<%= link_to_remote current_user.clients, go_to_controller_path %>

Продолжить оттуда.

go_to_controller_path направляет действие, которое отображает javascript для обновления 2-го столбца (возможно, с частичным).

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