如何动态更新/编辑/删除列表中的现有记录

问题描述 投票:0回答:1

新手到rails并且可以使用一些帮助来弄清楚如何允许用户更新列表中的记录而无需离开页面。

具体来说,我在页面上有两个表单,用户输入他们孩子的信息。

一种形式是用户添加新孩子的信息以创建下面的孩子列表。子项列表显示用户以前输入的子信息。但是,在子列表中,我希望允许用户删除和编辑单个孩子的记录。

我的DELETE功能工作正常,这是我遇到问题的UPDATE功能......

这是孩子#update controller:

def update
  raise
  @user = current_user
  @child = Child.find(params[:id])
  if @child.update_attributes(child_params)
    flash[:notice] = "Child info was updated."
  else
    flash[:error] = "Sorry.  Something went wrong, please try again."
  end
  respond_with(@child) do |f|
    f.html { redirect_to new_child_path }
  end
end

这是子列表形式的局部视图:

<form role="form">
  <% i = 1 %>
  <% @user.children.each do |child| %>
  <div class="col-md-12 form-align list-line">
    <div class="col-md-10 form-align">
      <%= label_tag child, "Child #{i}:" %>
      <% i += 1 %>
    </div>
  </div>
  <%= form_for(child, method: :put) do |f| %>
    <div class="col-md-12 form-align">
      <div class='col-md-4 form-align'>
        <%= f.label :first_name, class: 'sr-only' %>
        <%= f.text_field :first_name, value: child.first_name, class: 'form-control form-control-align'  %>
      </div>
      <div class='col-md-4 form-align'>
        <%= f.label :middle_name, class: "sr-only" %>
        <%= f.text_field :middle_name, value: child.middle_name, class: 'form-control form-control-align'  %>
      </div>
      <div class='col-md-4 form-align'>
        <%= f.label :last_name, class: "sr-only" %>
        <%= f.text_field :last_name, value: child.last_name, class: 'form-control form-control-align'  %>
      </div>
    </div>
    <div class="col-md-12 form-align">
      <div class="col-md-4 form-group form-inline form-align">
        <%= f.label :birth_date, "D.O.B." %>
        <%= f.date_field  :birth_date, value: child.birth_date,  class: 'form-control' %>
      </div>
      <div class="col-md-4 form-group form-inline form-align">
        <%= f.label :deceased, "Deceased?" %>
        <%= f.select :deceased, value: child.deceased?,  class: 'form-control form-control-align' %>
      </div>
      <%= f.submit "Update" %>
      <%= link_to '<i class="glyphicon glyphicon-remove red"></i>'.html_safe, child,  method: :delete %>
    </div>
  <% end %>
  <% end %>
</form>

...和子模型:简称belongs_to:用户/用户模型has_many:children

......和路线:资源:儿童

我想我需要通过我的form_for传递一些选项,但无法找到那些需要的东西......

ruby-on-rails form-for
1个回答
0
投票

我建议使用像Best in Place这样的宝石来允许在列表中的某些字段进行就地编辑。

如果您不想进行就地编辑,请使用包含编辑表单的模态视图。

© www.soinside.com 2019 - 2024. All rights reserved.