我想重定向到用户上传的pdf。
所以在浏览器中,当我去/ news_article / 3我希望它显示pdf时,pdf的路径存储在数据库中如何重定向到它?
在控制器@news_article = NewsArticle.find(params[:id])
模型
class AddAttachPaperclipToNewsArticles < ActiveRecord::Migration
def change
add_column :news_articles, :attach_file_name, :string
add_column :news_articles, :attach_content_type, :string
add_column :news_articles, :attach_file_size, :integer
add_column :news_articles, :attach_updated_at, :datetime
end
end
如果我做@news_article.attach
,它给了我pdf的路径,但是如何让浏览器显示pdf?当我在控制器中尝试redirect_to @news_article.attach
时,它为paperclip :: attachment:class表示未定义的方法'model_name'。
谢谢:)
答案 0 :(得分:1)
执行此操作的方法是在def show
编写的redirect_to @news_article.attach.url
中的news_article控制器中{{1}}
在news_article paperclip存储url中的attach(我在模型中称之为),而.url帮助是浏览器去那里的原因:)
答案 1 :(得分:0)
看起来@ news_article.attach正在向您返回paperclip :: attachment对象。由于paperclip :: attachment类的deafult to_s方法是url,因此您将看到pdf路径何时单独评估它。但实际上它不是“字符串”路径。因此,在重定向调用中,尝试通过在@new_article.attach上显式调用to_s来提供字符串路径,如redirect_to @news_article.attach.to_s