html - 活动管理员表单:按条件在单独面板中输入 has_many
问题描述
我正在尝试使用 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 被迭代属于另一个面板(空白 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 隐藏它。
解决方案
<div class="panel">
<h3>Reviews</h3>
<div class="panel_contents">
<div>
<% f.has_many :reviews, for: [:reviews, f.object.non_admin_reviews], heading: false, new_record: true, allow_destroy: true do |review| %>
<%= render partial: "admin/tutors/form_tutor_reviews", locals: { r: review } %>
<% end %>
</div>
</div>
</div>
推荐阅读
- c++ - main 上的头部显示未在此范围错误中声明。我需要用数据打印项目,然后从数据中找到总数
- java - 无法发布:Java 中未连接 MQTT 客户端
- react-native - 如何在 react-native iOS 中上传文件?
- visual-studio-code - 如何在 Visual Studio Code 中向 Jupyter Notebook 工具栏添加命令?
- django - 如何获取对象的 id 并将其用于孩子的查询?
- c# - TinyMapper null 检查绑定表达式
- google-sheets - 如何在谷歌表格中使用 CountIf 仅在另一个单元格中有内容时计算单元格?
- javascript - 即使在页面刷新时也能在高图中保持选择
- python - 如何通过python中的opencv中的某个标量影响某个区域的亮度?
- java - liquibase 不能与 java -jar SpringBoot 一起运行