在Rails应用程序中存储pdf

时间:2009-04-24 13:37:24

标签: ruby-on-rails database-design

如何在我的Rails应用程序中存储pdf,以便用户可以访问/下载它们?

在我的迁移中,我会使用数据类型t.binary吗?

然后在我的控制器/视图中,我该如何呈现这些数据?

3 个答案:

答案 0 :(得分:4)

这里的答案可能取决于它。取决于PDF的大小和数量,用户必须登录才能查看等等。

如果你有很多大型PDF,将它们存储在数据库中可能不是一个好主意 - 只需将它们存储在文件系统中并将文件位置存储在数据库模型中。

如果您确实想将它们存储在数据库中,那么可以使用二进制列。

如果用户不必登录下载PDF,那么您可以将它们放入公共文件夹(在子文件夹内)并生成指向它们的链接以供下载 - 然后您的控制器只需要生成一个链接到静态PDF文件,前端Web服务器将自动提供它们,而无需使用Rails过程。

答案 1 :(得分:3)

我听说过有关Paperclip的好消息,这是透明处理这些东西的一种方式 - 在文件系统上存储文件,并在数据库中引用该文件位置。

答案 2 :(得分:1)

这个问题可能不是特定于rails的,但最好的方法是生成pdf并将它们存储在你的文件系统上,然后在你的数据库中记录文件名和创建它们的日期(到如果需要,删除旧的。)