Показать кнопку на другой странице с помощью кокона - PullRequest
0 голосов
/ 05 апреля 2019

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

Итак, мой текущий вид:

<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://localhost:3000/products.97

Я просто не могу понять, почему он не может получить идентификатор, когда я его использую product_path.

Любая помощь будет рассматриваться.

Спасибо.

1 Ответ

0 голосов
/ 05 апреля 2019

Из разговора / комментариев я могу только заключить, что один из пунктов 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>  
...