Показывать запись через ajax на странице индекса? - PullRequest
1 голос
/ 02 января 2011

интересно, есть ли у кого-нибудь советы по обучению (т.е. знаете ли вы учебник?), Как сделать так, чтобы представление "show" удаленно загружалось через ajax на страницу индекса, когда нажимается ссылка на представление? Мне бы хотелось, чтобы вид отображался под заголовком ссылки.

Лучший, Эллиот

Ответы [ 2 ]

1 голос
/ 02 января 2011

В вашем контроллере визуализируйте частичку для элемента, который вы хотите:

def show
  @item = Item.get(params[:id])
  respond_with (@item) do |format|
    format.html{ render :partial => 'item' } 
    format.js{ render :partial => 'item', :layout=>false }
  end
end

И затем, используя jQuery, вы можете сделать:

$('a#my_loader').bind('click', function(){ 
  $.ajax({url: "/items/1",
          type: "GET",
          success: function(data) {
            $('#items').append(data);
          }
  });
});

Вам потребуется тег с идентификатором «my_loader» и div или ul с идентификатором «items», чтобы сделать эту работу.

0 голосов
/ 03 января 2011

Я бы сделал это так, как предложил Stef, но с некоторыми незначительными изменениями.

$('a#my_loader').click(function() {
  var success = function(response) {
    $(this).append(response);
  }

  $.get("items/" + $(this).attr('item_id'), success);

}

Это предполагает, что id объекта, на который вы нацеливаетесь, хранится в атрибуте вашей ссылки, известном какitem_id

Конечно, вы, возможно, захотите проверить, существует ли уже этот html, прежде чем выполнять вызов AJAX, чтобы не выполнять вызов и не добавлять частичное дважды.

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