ActiveAdmin has_many отображать частично условно - PullRequest
0 голосов
/ 02 марта 2020

У меня есть Table1 , у которого есть отношение has_many с Table2 .

Код 1 : -

## _edit_table1.html.erb

<% f.has_many :table2_relations, heading: false, new_record: true, allow_destroy: true do |r| %>
  <%= render partial: "admin/table1/show/form_table2", locals: { r: r } %>
<% end %>

Я хочу отобразить частичное на основе атрибута 0 Table2 , который является логическим. Только если attribute0 имеет значение true, я хочу отобразить частичное. Я пытался:

Код 2 : -

## _edit_table1.html.erb

<% f.has_many :table2_relations, heading: false, new_record: true, allow_destroy: true do |r| %>
  <% if r.object.attribute0 %>
    <%= render partial: "admin/table1/show/form_table2", locals: { r: r } %>
  <% end %>
<% end %>

Вывод кода 1:

enter image description here

Вывод code2:

enter image description here

Я не знаю, как удалить вторую коробку, на которой есть только Delete ... Я хочу только первое поле с идентификатором 2 и удалить галочку. Спасибо

1 Ответ

0 голосов
/ 02 марта 2020

Создайте отношение, исключающее ненужные записи.

class Table1
  has_many :table2s
  has_many :active_table2s, -> {where(attribute0: true)}, class_name: 'Table2'
  accepts_nested_attributes_for :active_table2s ...

Затем используйте это отношение вместо всеобъемлющего

...