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不属于您的领域,它就不知道自己的角色是什么