Javascript 如何在Rubyonrails视图中单击一个按钮即可更新数据库中的多个表?

Javascript 如何在Rubyonrails视图中单击一个按钮即可更新数据库中的多个表?,javascript,jquery,ruby-on-rails,postgresql,Javascript,Jquery,Ruby On Rails,Postgresql,我有3个模块模型。在视图中,我获取了值,并在视图中以表格格式显示这些值。现在,如果我编辑了表中的值并单击“保存”按钮,则相应的值应在db中的相应表中更新,并返回到具有相同id的同一视图。我如何才能做到这一点 如果我在视图中的表中添加了一行和相应的值,那么这些值也应该添加到各自的表中 <table> <%@task.each do |task|%> <tr id="task-<%=task.id%>"> <td>task.name<

我有3个模块模型。在视图中,我获取了值,并在视图中以表格格式显示这些值。现在,如果我编辑了表中的值并单击“保存”按钮,则相应的值应在db中的相应表中更新,并返回到具有相同id的同一视图。我如何才能做到这一点

如果我在视图中的表中添加了一行和相应的值,那么这些值也应该添加到各自的表中

<table>
<%@task.each do |task|%>
<tr id="task-<%=task.id%>">
<td>task.name</td>
</tr>
<%@subtask.each do |subtask|%>
<tr id="subtask-<%=subtask.id%>">
....
</tr>
<% end %>
<% end %>
</table>

task.name
....
现在单击保存按钮,子任务模型应该用子任务更新,任务模型应该用任务更新。子任务模型引用任务模型,任务模型引用发票模型。获取值时,发票id是获取任务和子任务的基础


我想根据发票ID更新模型中的值。我不想重定向,因为我应该在同一个视图中,数据应该在db中更新。

您混淆了模型、视图和控制器的概念。 如果您想通过视图编辑某些内容并想更改数据库,那么您必须在视图中使用某种形式的表单,您可以在其中编辑值,相应地,您的控制器中必须有一个方法来处理post请求。 在控制器中,您必须将这些值保存在表中。 例如,这里是将接受输入的视图

<h1>Update your profile</h1>

<div class="row">
  <div class="col-md-6 col-md-offset-3">
    <%= form_for(@user) do |f| %>

        <%= f.label :name %>
        <%= f.text_field :name, class: 'form-control' %>

        <%= f.label :email %>
        <%= f.email_field :email, class: 'form-control' %>

        <%= f.label :password %>
        <%= f.password_field :password, class: 'form-control' %>

        <%= f.label :password_confirmation, "Confirmation" %>
        <%= f.password_field :password_confirmation, class: 'form-control' %>

        <%= f.submit "Save changes", class: "btn btn-primary" %>
    <% end %>

    <div class="gravatar_edit">
      <%= gravatar_for @user %>
      <a href="http://gravatar.com/emails">change</a>
    </div>
  </div>
</div>  

其中名称、电子邮件、密码是数据库中的表字段

我已经使用了上述所有内容。我有一个表单,可以发布值,并将数据保存在数据库中。现在我有了另一个表单,它从db中的3个表中获取值并显示它。它也有编辑选项。现在,当我单击“保存”按钮时,数据应该在数据库中相应的表中更新,并且应该在不重定向的情况下保持相同的视图。您可以共享更多详细信息、控制器详细信息、您在params[]哈希中获得的内容吗??
def edit
    @user = User.find(params[:id])
  end

 def user_params
    params.require(:user).permit(:name, :email, :password,
                                 :password_confirmation)
  end