我在服务器中有文件要为其保密。为此,我创建了一个控制器,用于获取数据并最终将其呈现给Web broswer。
在视图中
<%= link_to "Click to view the file", file_proxy( user.pdf_file_url ) %>
在users_heper.rb
中def file_proxy(url)
file_proxy_path(url: url)
end
在routes.rb
中get "file_proxy" => "file_proxy#fetch"
在控制器中
def FileProxy < ApplicationController
def fetch
response = HTTParty.get params[:url]
render response
end
end
我得到<HTTParty::Response:0x10cd6e6a8 parsed_response="%PDF-1.3......" is not an ActiveModel-compatible object. It must implement :to_partial_path.
您知道如何调整此代码以便正确显示PDF文件吗?
谢谢!
答案 0 :(得分:2)
您无法以这种方式致电render
。它期待非常具体的选择。在这种情况下,它可能看起来像:
pdf_content = HTTParty.get(params[:url])
send_data(pdf_content, disposition: 'inline', type: 'application/pdf')
作为一个注释,您可能希望限制工具提取的内容或最终会滥用它的内容。