jQuery 重定向不适用于 Rails 每个循环

jQuery redirect not working with Rails each-loop

本文关键字:循环 Rails 适用于 重定向 不适用 jQuery      更新时间:2023-09-26

我有一个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循环,重定向有效。任何其他代码根本不受循环的影响,文件中的位置也不会改变任何东西。我尝试了许多不同的方法,但没有找到任何解决方案。

您需要

<%= @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