Rails:使用Ajax更新表格单元而不刷新

时间:2016-08-31 05:48:49

标签: javascript jquery ruby-on-rails ajax

Index.html.erb有一个表单和一个表 我使用Ajax使表单提交而不重定向

<%= form_for approval,remote: true do |f| %>
  <%= f.check_box :pass %>
  <%= f.submit%>
<% end %>

但我也希望一旦我从下面提交,而不刷新,表格就会更新。

<% @approval.each do |approval| %>
<td><%= approval.progress %></td>
<% end %>

控制器

class ApprovalController < ApplicationController
    def index
        @approval = Approval.where(user_id: id)
    end

    def update
       @approval.update_attributes(app_params)
       redirect_to approvals_path
    end 
end

如何实现这一目标?

2 个答案:

答案 0 :(得分:0)

创建create.js并使用<td>

将表格数据create.js附加到表格中

<强> approvals_controller.rb

class ApprovalController < ApplicationController
  def create
    @approval = Approval.new(params[:approval])
    @approval.save
    respond_to do |format|
      format.js
    end
  end
end

<强> create.js.erb

<% if @approval.valid? %>
  $('#wrapper').append("<td><%= @approval.progress %></td>")
<% end %>

注意: #wrapper是循环的包装

答案 1 :(得分:0)

首先,您必须序列化您的表单。然后使用序列化数据,您可以执行以下操作:

NSString

这是一个很容易做到的选择。