有条件的 rails 字段

Gam*_*bai 3 ruby field ruby-on-rails fields-for

我正在显示一个案例的一些联系人。问题是我想把它们分成几组。

客户 ...列出客户 前律师 ...列出前律师 反对方 ...列出反对方

    <% current_account.roles.each do |role| %>
      <%= f.fields_for :case_contacts, f.object.case_contacts.order(:role) do |builder| %>
        <% if builder.object.role == role %>
          <%= render partial: 'contact_fields', locals: { f: builder, edit: edit } %>
        <% end %>
      <% end %>
    <% end %>
Run Code Online (Sandbox Code Playgroud)

所以这有效,只是它在我的 html 中留下了空的 div.fields。

有没有办法将条件放在 fields_for 语句中

    <%= f.fields_for :case_contacts, f.object.case_contacts.order(:role), if f.object.role = role do |builder| %>
Run Code Online (Sandbox Code Playgroud)

我知道这个例子是错误的。

而且,实际上,我可以不用 fields_for 一起生成的 div.fields

编辑:如果 fields_for 只显示 builder.object.role = role 的字段,我想我什至不需要订购它

Gam*_*bai 6

找到答案

 <%= f.fields_for :case_contacts, f.object.case_contacts.where(role: role) do |builder| %>
Run Code Online (Sandbox Code Playgroud)