Показать кнопку на другой странице с помощью кокона

Я использую кокон на одной из форм и хочу добавить кнопку показа в каждую строку, которая будет направлять пользователей на страницу показа другой модели. Однако, пока все работает гладко, я не могу заставить эту кнопку появляться.

Так что это мой текущий взгляд:

<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:

HTTP: // локальный: 3000 / products.97

Я просто не могу понять, почему он не может получить идентификатор, когда я использую его 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>  
Другие вопросы по тегам