rails 表单更新数据库记录

rails forms updating a db record

我想重写一个用于更新数据库记录的表单。 我想更新表单,使表单输入不显示记录,如 记录由

行输出
<%= q.object.content %>. 

我想要 表单输入不显示记录,我希望记录被更新 当输入字段被编辑时,当它留空时不被编辑。

我是使用表单的新手,不知道实现此目的的最佳方法。

任何人都可以提供任何帮助来实现这一目标吗?以下是当前表格。任何帮助将不胜感激。

<%= semantic_form_for @bunchOfThings do |f| %>
    <%= f.inputs do %>
        <%= f.semantic_fields_for :aThing, @aThing do |q| %>
            <%= q.object.content %> 
            <%= q.input :content, label: "A Thing: #{q.object.content}" %>
        <% end %>
    <% end %>
    <%= f.action :submit , label: t('Some Text'), button_html: { class: 'btn btn-primary' } %>
<% end %>

您可以通过更改此行手动将字段的默认值设置为空字符串:

<%= q.input :content, label: "A Thing: #{q.object.content}" %>

为此:

<%= q.input :content, label: "A Thing: #{q.object.content}", input_html: {value:''} %>

您还需要在更新控制器方法中过滤掉后端的空白字段。像这样:

def update
  filtered_params = permitted_record_params
  filtered_params.keep_if{|k,v| !v.blank? }
  record.update(filtered_params)
  ...
end

当然 permitted_record_params 方法 returns 您允许的参数散列。