通过索引页面上的ajax显示记录?

时间:2011-01-02 16:05:26

标签: javascript ruby-on-rails ruby ruby-on-rails-3

想知道是否有人有任何学习技巧(即知道教程?)如何在点击视图的链接时通过索引页面上的ajax远程加载“show”视图?我希望视图显示在链接标题下方。

最佳, 埃利奥特

2 个答案:

答案 0 :(得分:1)

在您的控制器中,渲染所需项目的部分内容:

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);
          }
  });
});

你需要一个id为'my_loader'的标签和一个id为'items'的div或ul才能使这个工作。

答案 1 :(得分:0)

我会像stef建议的那样做,但稍作修改。

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

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

}

这假定您定位的对象的id存储在链接的属性item_id

当然,在进行AJAX调用之前,您可能想要检查该html是否已存在,以便您不进行调用并将部分附加两次。