【问题标题】:jQuery redirect not working with Rails each-loopjQuery重定向不适用于Rails每个循环
【发布时间】:2014-11-29 13:37:36
【问题描述】:

我有一个 Rails 网站,在该网站上创建新帖子会响应 JavaScript。

我也在使用 private_pub gem 并在创建帖子后触发推送消息。

用户应该在创建后被重定向到帖子。

这是create.js.erb的内容:

<%= @users.each do |user| %>
  <% publish_to "/user/#{user.id}" do %>
    $("#messages").prepend("<%= j render(@message) %>");
  <% end %>
<% end %>

var url = "/posts/<%= j @post.id %>";
$(location).attr('href',url);

推送消息工作正常,但用户没有被重定向。

如果我删除 each-loop,重定向会起作用。任何其他代码都不受循环的影响,文件中的位置也不会改变任何东西。我尝试了许多不同的方法,但没有找到任何解决方案。

【问题讨论】:

  • 你能检查浏览器上呈现的实际 javascript 吗?你能粘贴带/不带循环的结果吗?
  • @UriAgassi 使用循环它返回数组然后重定向,没有它只是重定向。基本上,循环看起来像这样: [#<User id: 2, ...;] var url = "/posts/3; $(location).attr('href',url);

标签: javascript jquery ruby-on-rails ruby


【解决方案1】:

您需要从&lt;%= @users.each ... 中删除=

<% @users.each do |user| %>
  <% publish_to "/user/#{user.id}" do %>
    $("#messages").prepend("<%= j render(@message) %>");
  <% end %>
<% end %>

var url = "/posts/<%= j @post.id %>";
$(location).attr('href',url);

否则会渲染each的返回值,也就是数组本身(@users

【讨论】:

  • 哈,太简单了!非常感谢。
猜你喜欢
  • 1970-01-01
  • 2017-01-10
  • 1970-01-01
  • 1970-01-01
  • 2013-09-02
  • 2012-06-08
  • 1970-01-01
  • 2016-06-26
  • 1970-01-01
相关资源
最近更新 更多