Rails 5、渲染一个没有特定输入的表单

Rails 5 , render a form without specific input

我正在尝试呈现用于编辑的部分表单,但我不希望该表单的特定部分出现在编辑操作中。我正在使用普通格式渲染。

<%= render 'form', link: @link %>

而且我不想显示具体的部门

<div class="form-group">
<%= f.label :Description %><br>
<%= f.text_area :description, class: "form-control" %>

谢谢,

您可以通过类似的方式实现:如果对象是新记录,则只显示此 div

<% if f.object.new_record? %>
  <div class="form-group">
    <%= f.label :Description %><br>
    <%= f.text_area :description, class: "form-control" %>
  </div>
<% end %>

另一种方法是将额外的参数传递给部分:

<% if allow_description %>
  <div class="form-group">
    <%= f.label :Description %><br>
    <%= f.text_area :description, class: "form-control" %>
  </div>
<% end %>

然后:

# new action
<%= render 'form', link: @link, allow_description: true %>

# edit action
<%= render 'form', link: @link, allow_description: false %>

你可以像这样用 if 包裹 div

<% if @link.new_record? %>
  <div class="form-group">
  <%= f.label :Description %><br>
  <%= f.text_area :description, class: "form-control" %>
<% end %>