0

我有一个按钮,当我点击它时,喜欢的产品 ID 会存储在会话中。一切都通过 AJAX 发生。

在页面底部,我想查看保存的产品并希望它们通过 jQuery 自动更新。但是只有当我刷新页面时才会出现 div 。

一切似乎都是正确的,但不起作用。

我的链接:

<%= link_to "", remember_url(prop.id), method: :post,
                            id: 'remember_me',
                            class: "like #{like prop.id}",
                            data: { href: remember_url(prop.id)},
                            remote: true %>

我在控制器中的方法:

 def remember_me
   session[:product] ||= []
   products_array = session[:product]
   product = Product.find(params[:id])
   if products_array.include? product.id
     products_array.delete(product.id)
   else
     products_array << product.id
   end
   #redirect_to :back
   #render :nothing => true
   render partial: "static_pages/debag" #=> this is going to be "result" in AJAX.
 end

渲染部分:'static_pages/debag:

<%= session[:houses] %>

阿贾克斯:

$('a.like').click(function() {
        $.ajax({
            url: $(this).data('href'),
            type: 'POST',
            dataType: 'html',
            success: function(){
                suppose here I have to refresh session?
                $(".session").html("<%= j(render(partial: 'static_pages/debag')) %>"); 
            }
        });
    });

解决方案:答案很奇怪。但现在它正在工作。刚刚将结果添加到函数和 html 中。

$('input#start_page, a.like').click(function() {
        $.ajax({
            url: $(this).data('href'),
            type: 'POST',
            dataType: 'html',
            success: function(result){

                $(".session").html(result);
            }
        });
    });
4

1 回答 1

0

尝试在适当的控制器的视图文件夹中创建一个名为 remember_me.js.erb 的模板

并将此代码粘贴到其中。

$(".session").html("<%= j render partial: 'static_pages/debag' %>");
于 2013-07-28T18:27:43.067 回答