【问题标题】:form in a form in Rails?在 Rails 中以表格形式出现?
【发布时间】: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


【解决方案1】:

您可以通过控制器中的操作来实现它。

例如在视图中:

<%= link_to 'Remove school', user_path(@current_user), :method => :delete, :class => "btn btn-danger btn-small" %>

在控制器中:

def destroy
    @current_user.update_attribute(:value, nil)
    respond_to do |format|
      format.html{redirect_to :back}
    end
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-03
    • 1970-01-01
    • 1970-01-01
    • 2021-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多