if语句在respond_to js文件中

时间:2013-06-06 23:45:29

标签: ruby-on-rails ruby ajax jquery partial-views

我有一个页面,其中包含ajax标签,可以在我的控制器中加载不同的动作,以呈现具有不同内容的部分动作。

因此我的控制器的索引操作在顶部有两个远程:true链接。它工作得很好,他们使用respond_to js来适当地渲染相应的部分。

#comments_stream.js.erb and likes_stream.js.erb
$("#masonry-container").html("<%= escape_javascript render('activities/activites') %>");

问题是我也在对这些部分kaminari和无限卷轴进行分页。因此我不希望在我的分页激活时运行上面js.erb文件中的代码,因为它只是替换(.html)我的内容而不是以无限滚动脚本尝试的方式附加新内容(并且在我的其他页)。

#pagination
<%= paginate @activities, remote: true %>

所以,我真正的问题是如何制作.html(“&lt;%...仅在单击我的标签中的链接时触发,而不是在分页时触发。

我尝试使用参数来定位远程操作,但无法使其工作。

 #original remote link
<%= link_to comments_stream_path, remote: true %>

#what I tried
<%= link_to comments_stream_path, remote: true, :item => 'comments_partial' %>

#comments.js.erb
<% if params[:item] == 'comments_partial' %>
  $("#masonry-container").html("<%= escape_javascript render('activities/activites') %>");
<% end %>

任何帮助将不胜感激!我一直在搞乱这一段时间......

1 个答案:

答案 0 :(得分:1)

我认为你的参数传递错误,请尝试:

<%= link_to comments_stream_path(:item => 'comments_partial'), remote: true %>