嘿伙计们,所以我意识到这可能有点令人费解,但这是我的代码看起来像我想要做的:
#new.html.erb
<% @tag_counter = 0 %>
此处的Javascript代码,即单击特定按钮时,将部分_tag.html.erb附加到下面的div
#_tag.html.erb
<div id="tag-id-<%= @tag_counter %>">Div here</div>
<% @tag_counter = @tag_counter+1 %>
所以我遇到的问题是@tag_counter值没有改变。它保持为0并且每个附加的div具有相同的ID。知道我怎么能做这个工作吗?
答案 0 :(得分:0)
每个_tag.html.erb
由新的HTTP请求呈现,并且所有变量都独立于所有其他调用。另请注意,除了回调明确提供的内容之外,您的Ruby代码无权访问该页面,因此您无法检查页面上已有的内容。
在请求中包含一个计数器(来自JavaScript),在事后(也来自JavaScript)设置它,或者创建随机ID。
答案 1 :(得分:0)
看看这里:http://guides.rubyonrails.org/layouts_and_rendering.html#using-partials
在3.4.7中,您将看到部分存在计数器,只需使用Rails方式。
答案 2 :(得分:0)
我做了类似的事情,虽然这可能不是您正在寻找的答案。
当有人在我的申请中投票时,我通过AJAX发出了信号。
$(".vote_link").live("click", function (){
$.ajax({type: "GET", url: $(this).attr("href"), dataType: "script"});
return false;
});
这会加载一个针对js文件的href,该文件说明了这一点:
== $(".event_#{@event.id}_score").html("#{ escape_javascript(@event.score.to_s)}");
该事件以其类的唯一ID为目标,而Jquery只处理交换数字,而不是像我认为的那样加载整个部分。