【发布时间】:2014-02-10 03:18:07
【问题描述】:
我的 Rails 应用程序中有一个设计“编辑用户”表单。一个用户还包含一个 school_id。在我的编辑用户表单上,我有一个部分显示用户订阅的学校。在学校名称旁边,我有一个将用户的 school_id 设置为 nil 的按钮。但是,由于这实际上是一个带有隐藏字段的表单,因此用户可以在编辑用户表单上“保存更改”,并且由于我在页面上有另一个表单,它会将 school_id 设置为 nil。
伪代码:
edit user information
School: schoolname [button to remove school]
edit more user information
[Submit changes]
移除学校的按钮:
<% if current_user.school %>School: <b><%=link_to current_user.school.name, current_user.school %></b>
<%= form_for(@user) do |f| %>
<%= f.hidden_field(:school_id, :value => nil) %>
<%= f.submit "Remove school", class: "btn btn-danger btn-small" %>
<% end %>
有没有一种方法可以实现这一点,而无需将“删除学校”按钮移到表单外?它非常适合工作流程,但它会导致问题,因为它现在在技术上是编辑设计用户注册表单的一部分。有什么想法吗?
谢谢!!
【问题讨论】:
-
即使我仍然只更新一个模型,嵌套表单也能在这里工作吗?我只用两种形式更新用户模型。
标签: ruby-on-rails ruby forms devise