序列化fields_for编辑时未从数据库填充



在此表单的编辑页面上,fields_for标记之外的所有字段(收件箱名称、自动对帐以及此处未列出的其他一些字段)都根据其相应的 db 值进行填充。但是,fields_for 标记中的所有内容都不是,即使它们发布到数据库就可以了。

我发布了:group_member_roles为例,但在他们自己的其他fields_for中还有其他一些字段在做同样的事情。令人困惑的是,它会发布到数据库但不显示在编辑时。

我读得越多fields_for我就越觉得我没有正确使用它。它似乎更倾向于在您的表单当前引用的数据库表之外填充数据库表,但我只是尝试序列化收件箱表中的数据。当我查看 : group_member_roles 列时,我希望它是一个包含进程 true/false、操作添加/删除和一串值的数组/哈希。

#_form.html.erb
<%= form_for(@inbox) do |f| %>
    <%= f.label :inbox_name %>
    <%= f.text_field :name, placeholder: "Inbox Name" %>
  <%= f.label :automatic_reconciliation, "Turn on/off automatic reconciliation" %>
  <div class="switch small">
    <%= f.check_box :automatic_reconciliation, class: "switch-input" %>
    <label class="switch-paddle" for="inbox_automatic_reconciliation">
      <span class="show-for-sr">Automatic reconciliation</span>
      <span class="switch-active" aria-hidden="true">On</span>
      <span class="switch-inactive" aria-hidden="true">Off</span>
    </label>
  </div>
  <%= f.fields_for :group_member_roles do |group_member_roles| %>
  <h4>Group Member Roles</h4>
  <%= group_member_roles.label :process, "Turn On/Off Processing" %>
  <div class="switch small">
    <%= group_member_roles.check_box :process, class: "switch-input" %>
    <label class="switch-paddle" for="inbox_group_member_roles_process">
      <span class="show-for-sr">Group Member Roles Processing</span>
      <span class="switch-active" aria-hidden="true">On</span>
      <span class="switch-inactive" aria-hidden="true">Off</span>
    </label>
  </div>
  <%= group_member_roles.label :action, class: "hide" %>
  <%= group_member_roles.select :action, ["Add", "Delete"], { selected: "Add" }, { class: "hide" } %>
  <%= group_member_roles.label :values %>
  <%= group_member_roles.text_field :values, placeholder: "1234, 1337, 1986" %>
  <% end %>

提前感谢您的任何帮助或指导。

字段被存储为哈希,并且该字段正在寻找要填充的对象,因此我在fields_for中添加了一个 OpenStruct 虚拟对象以使其如此。如果有人能想到更好的方法,请告诉我,因为这是非常丑陋的代码。

  <%= f.fields_for :group_member_roles, OpenStruct.new(f.object.group_member_roles) do |group_member_roles| %>

相关内容

  • 没有找到相关文章

最新更新