Rails 投票 jquery
Rails polling with jquery
我有一个索引页面,其中列出了所有用户及其状态(可用或不可用),每个用户都可以随时更改 his/her 状态。我想做的是实时轮询以显示最新状态。我已经完成了 Jquery 轮询功能并且它可以工作(用一个简单的警报尝试它并且它每 10 秒显示一次警报)。现在我不知道要在我的 index.js.erb 文件中包含什么,该代码应该刷新包含用户及其状态的 div。我有这个:
$("#users-container").replaceWith("<%= escape_javascript(render @users) %>")
用新用户替换旧用户和他们的状态,但这是行不通的,页面根本没有改变。
有什么建议吗?
这是我的 index.html.erb
<div id="users-container">
<%= render @users %>
</div>
_user.html.erb
<p>
<%= name_with_status(user.full_name, user.status, user.id) %>
</p>
其中name_with_status只是一个显示名称、状态的助手。
您可能想尝试使用 .html()
而不是 .replaceWith()
。在您的情况下,您想要替换 #users-container
的内容,而不是整个元素本身。
所以你可以这样做:
$("#users-container").html("<%= escape_javascript(render @users) %>")
我有一个索引页面,其中列出了所有用户及其状态(可用或不可用),每个用户都可以随时更改 his/her 状态。我想做的是实时轮询以显示最新状态。我已经完成了 Jquery 轮询功能并且它可以工作(用一个简单的警报尝试它并且它每 10 秒显示一次警报)。现在我不知道要在我的 index.js.erb 文件中包含什么,该代码应该刷新包含用户及其状态的 div。我有这个:
$("#users-container").replaceWith("<%= escape_javascript(render @users) %>")
用新用户替换旧用户和他们的状态,但这是行不通的,页面根本没有改变。
有什么建议吗?
这是我的 index.html.erb
<div id="users-container">
<%= render @users %>
</div>
_user.html.erb
<p>
<%= name_with_status(user.full_name, user.status, user.id) %>
</p>
其中name_with_status只是一个显示名称、状态的助手。
您可能想尝试使用 .html()
而不是 .replaceWith()
。在您的情况下,您想要替换 #users-container
的内容,而不是整个元素本身。
所以你可以这样做:
$("#users-container").html("<%= escape_javascript(render @users) %>")