通过javascript提交表单后更新rails中的div部分

时间:2013-07-17 15:50:04

标签: javascript ruby-on-rails ajax

我有一个名为whatsup的表,还有用户,它的实现方式是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将自动显示。

1 个答案:

答案 0 :(得分:0)

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

在WhatsupsController中#create do:

respond_to do |format|
    format.js
end

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

$("#chat").append("<%= j render(@whatsup) %>");