Добавить расширение pdf к ссылке

Я знаю, что это должен быть повторяющийся вопрос - я искал его, но не нашел ответов.

Я пытаюсь сделать простую ссылку на некоторые документы из индексного представления моего приложения rails. Я использую плагин wkhmtltopdf через гем PDFkit. Я могу просто добавить расширение .pdf к любой странице и получить копию в формате pdf. Эта часть отлично работает, я просто могу понять правильный синтаксис для добавления формата. Вот что у меня есть до сих пор:

<tr>
    shortened for brevity's sake
            <td><%= link_to 'Show', certification %></td>
            <td><%= link_to 'Edit', edit_certification_path(certification) %></td>
            <td><%= link_to 'Destroy', certification, method: :delete, data: { confirm: 'Are you sure?' } %></td>
            <td><%= link_to "Download PDF", certification_path(@certification, :format => "pdf") %></td>
</tr>

Я пытался следовать методу Райана из PDFkit Railscast Episode, но, похоже, его метод должен быть устаревшим, или я мог сделать что-то не так.


person PSCampbell    schedule 17.02.2015    source источник
comment
Выглядит правильно, что этот link_to выдает в виде html?   -  person coderhs    schedule 17.02.2015
comment
Я получаю ошибку ActionController::UrlGenerationError. No route matches {:action=>"show", :controller=>"certifications", :format=>"pdf", :id=>nil} missing required keys: [:id] - явно отсутствует параметр :id, но это не требуется при использовании ссылки show выше   -  person PSCampbell    schedule 17.02.2015


Ответы (1)


<tr>
    shortened for brevity's sake
            <td><%= link_to 'Show', certification %></td>
            <td><%= link_to 'Edit', edit_certification_path(certification) %></td>
            <td><%= link_to 'Destroy', certification, method: :delete, data: { confirm: 'Are you sure?' } %></td>
            <td><%= link_to "Download PDF", certification_path(@certification, :format => "pdf") %></td>
</tr>

Хорошо, судя по вашему коду, вы использовали сертификацию и @certification. Из вашего комментария, в котором говорится, что nil не существует, @certifcation не имеет в нем никакого значения.

Поэтому я считаю, что правильное решение в вашем случае.

<td><%= link_to "Download PDF", certification_path(certification, :format => "pdf") %></td>
person coderhs    schedule 17.02.2015