Я пытаюсь использовать active admin и formtastic для создания формы, в которой обзоры определенного типа редактируются на отдельной панели, в настоящее время я отображаю панели с помощью частичного .html.erb, например:
<div class="panel">
<h3>Admin Reviews</h3>
<div class="panel_contents">
<div>
<% f.has_many :reviews, heading: false, new_record: true, allow_destroy: false do |review| %>
<% next unless review.object.reviewer_type === "Admin" %>
<%= render partial: "admin/admin_reviews", locals: { r: review } %>
<% review.input :_destroy, :as => :boolean, :label => "Delete" %>
<% end %>
</div>
</div>
</div>
<div class="panel">
<h3>Reviews</h3>
<div class="panel_contents">
<div>
<% f.has_many :reviews, heading: false, new_record: true, allow_destroy: false do |review| %>
<% next if review.object.reviewer_type === "Admin" %>
<%= render partial: "admin/form_reviews", locals: { r: review } %>
<% review.input :_destroy, :as => :boolean, :label => "Delete" %>
<% end %>
</div>
</div>
но я бы предпочел избавиться от пустого элемента div, который создается для каждого повторяемого обзора и принадлежащего другой панели ( blank div ):
<div class="panel">
<h3>Admin Reviews</h3>
<div class="panel_contents">
<div>
<% admin_reviews = Review.where(reviewer_type: "Admin") %>
<% f.has_many admin_reviews, heading: false, new_record: true, allow_destroy: true do |review| %>
<%= render partial: "admin/admin_reviews", locals: { r: review } %>
<% end %>
</div>
</div>
</div>
<div class="panel">
<h3>Reviews</h3>
<div class="panel_contents">
<div>
<% reviews = Review.where.not(reviewer_type: "Admin") %>
<% f.has_many reviews, heading: false, new_record: true, allow_destroy: true do |review| %>
<%= render partial: "admin/form_reviews", locals: { r: review } %>
<% end %>
</div>
</div>
Выше не работает, но я надеюсь, что это говорит о моей потребности в более точном решении, которое не имеет пустых div, которые я рассматриваю как скрытие с javascript.