0

我有一个名为 whatsup 的表,还有 users,它以 whatsup 属于用户的方式实现,我让用户可以像这样通过 ajax 创建 whatsup

$("#chat").append("<%= j render(@whatsup) %>");
$("#new_whatsup")[0].reset();

我像这样显示在表单顶部创建的whatsups

<ul id="chat">
  <%= render @whatsups %>
</ul>

<%= form_for Whatsup.new, remote: true do |f| %>
  <%= f.text_field :details%>
  <%= f.submit "Send" %>
<% end %>

在我的控制器中@whatsups 是这样声明的

@whatsups = current_user.whatsups.all(:limit => 1, :order => 'created_at DESC')

这意味着一次应该显示一个whatsup

我想要的是,部分@whatsups 应该立即重新加载表单提交而不重新加载整个页面,即单独重新加载该div,以便自动显示创建的新whatsups。

4

1 回答 1

0

我认为您应该在创建操作中添加一个 js 响应,如下所示:

在 WhatsupsController#create 做:

respond_to do |format|
    format.js
end

然后创建视图文件views/whatsups/create.js.erb。在那里,您可以创建一个 JavaScript,创建完成后将在页面上执行。像这样的东西:

$("#chat").append("<%= j render(@whatsup) %>");
于 2013-07-17T15:59:10.413 回答