想知道是否有人有任何学习技巧(即知道教程?)如何在点击视图的链接时通过索引页面上的ajax远程加载“show”视图?我希望视图显示在链接标题下方。
最佳, 埃利奥特
答案 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是否已存在,以便您不进行调用并将部分附加两次。