我正在尝试在我创建的博客上添加PDF下载链接,但是我遇到了链接问题。
我咨询了几个SO帖子(例如this和this)以获得尽可能多的信息,但看到我正在处理变量(因为我在blogs#show
他们到目前为止只得到了我。
在我的表单中,我有@blog.link_text
表示应在页面上显示的确切链接文字(例如“为您的笔记下载免费的可打印PDF”)和@blog.link_filename
以存储应该下载的PDF。
在blogs#show
上,我在ERB中有以下链接:
<h3>
<%= link_to download_pdf_path(@blog.link_filename), type: "application/pdf" do %>
<%= @blog.link_text %>
<% end %>
</h3>
然后在我routes.rb
我有这个:
get "download_pdf", to: "blogs#download_pdf"
最后,在我的blogs_controller.rb
我有download_pdf
方法:
def download_pdf(filename)
send_file filename, type: "application/pdf"
end
我目前有"app/assets/images/house_tour_notes.pdf"
作为@blog.link_filename
值,但我尝试过各种其他值。我目前在images
和public
中有一份PDF副本。
链接在页面上正确显示,但点击后,我得到:
No route matches [GET] "/download_pdf.%22app%2Fassets%2Fimages%2Fhouse_tour_notes.pdf%22"
有人可以帮忙解决这个问题吗?我哪里错了?
答案 0 :(得分:1)
我认为你可以通过不同的方式轻松解决这个问题。该链接可以转到博客帖子本身:
startButton
更改路线:
startButton.addEventListener("click", function() {
if (document.getElementById("t1-stop") != null) {
clearInterval(timeinterval);
var stopButton = document.getElementById("t1-stop");
startButton.removeChild(stopButton);
startButton.innerHTML = START_BUTTON_INITIAL_TEXT;
return;
}
var timeInMinutes = minutesLabel.innerHTML,
currentTime = Date.parse(new Date()),
deadline = new Date(currentTime + timeInMinutes * 60 * 1000);
initializeClock(deadline);
startButton.innerHTML = ('<i id="t1-stop" class="far fa-stop-circle fa-2x float-right">');
});
然后更改控制器:
<h3>
<%= link_to download_pdf_path(@blog), type: "application/pdf" do %>
<%= @blog.link_text %>
<% end %>
</h3>