Показать кнопку на другой странице с помощью кокона
Я использую кокон на одной из форм и хочу добавить кнопку показа в каждую строку, которая будет направлять пользователей на страницу показа другой модели. Однако, пока все работает гладко, я не могу заставить эту кнопку появляться.
Так что это мой текущий взгляд:
<div class = "nested-fields">
<div class="table-responsive">
<table class= "table table-hover">
<tr>
<th> Product ID </th>
<th> Button </th>
</tr>
<tr>
<td> <%=f.object.product_id%> </td>
<td> <%= link_to 'Show', product_path(f.object.product_id), class: "btn btn-outline-success", target: :_blank %> </td>
</tr>
</table>
</div>
</div>
Когда я пытаюсь открыть эту страницу, я получаю эту ошибку:
Не найдено ни одного маршрута {:action=>"show",:controller=>"products",:id=>nil}, отсутствуют обязательные ключи: [:id]
Тем не менее, я знаю, что product_id не nill, потому что в таблице я могу напечатать product_id для каждой строки. И, конечно, мой продуктовый маршрут в порядке, я уже могу использовать его, в том числе с шоу-акцией. И я знаю, что product_id имеет соответствующий идентификатор в таблице продуктов.
Кроме того, если попытаться перейти на страницу индекса продуктов с помощью:
<%= link_to 'Show', products_path(f.object.product_id), class: "btn btn-outline-success", target: :_blank %>
будет создан следующий URL:
Я просто не могу понять, почему он не может получить идентификатор, когда я использую его product_path.
Любая помощь будет рассматриваться.
Благодарю.
1 ответ
Из разговора / комментариев я могу сделать вывод только один из пунктов product_id
на самом деле действительно ноль. Простой способ убедиться, что ваша таблица / страница по-прежнему отображается, напишите свой вид следующим образом
<td>
<% if f.object.product_id.present? %>
<%= link_to 'Show', product_path(id: f.object.product_id), class: "btn btn-outline-success", target: :_blank %>
<% end %>
</td>