【发布时间】:2014-07-21 20:20:51
【问题描述】:
Rails 新手,可以帮助了解如何允许用户在不离开页面的情况下更新列表中的记录。
具体来说,我在用户输入孩子信息的页面上有两个表单。
用户可以在一个表单中添加新的孩子信息以在下面创建一个孩子列表。 孩子列表显示用户之前输入的孩子信息。 但是,在孩子列表中,我希望允许用户删除和编辑单个孩子的记录。
我的 DELETE 功能工作正常,这是我遇到问题的 UPDATE 功能...
这是 children#update 控制器:
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 :user / 用户模型 has_many :children
...和路线:资源:儿童
我认为我需要通过我的 form_for 传递一些选项,但无法找到需要的选项...
【问题讨论】:
-
你应该考虑删除这个问题。