Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails rails字段用于条件_Ruby On Rails_Ruby_Field_Fields For - Fatal编程技术网

Ruby on rails rails字段用于条件

Ruby on rails rails字段用于条件,ruby-on-rails,ruby,field,fields-for,Ruby On Rails,Ruby,Field,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 ==

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

客户 …列出客户 前律师 …前律师名单 反对党 …列出反对党

    <% 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 %>

因此,除了在我的html中留下空的div.fields之外,这是可行的

有没有办法将条件放在语句的字段中

    <%= f.fields_for :case_contacts, f.object.case_contacts.order(:role), if f.object.role = role do |builder| %>

我知道这个例子是错误的

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

编辑:
如果fields\u for仅显示builder.object.role=role的字段,我想我甚至不需要订购它。您将必须使用保护条件将fields\u for block包装起来:

<% if f.object.role == 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 %>

找到了答案

 <%= f.fields_for :case_contacts, f.object.case_contacts.where(role: role) do |builder| %>

但是,只有案例联系人才能发挥作用。Ruby不会迭代case\u contacts,直到字段\u为,对吗?我错过什么了吗?也许我搞糊涂了。如果Ruby不属于您的领域,它就不知道自己的角色是什么