Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在Rails应用程序中存储PDF_Ruby On Rails_Database Design - Fatal编程技术网

Ruby on rails 在Rails应用程序中存储PDF

Ruby on rails 在Rails应用程序中存储PDF,ruby-on-rails,database-design,Ruby On Rails,Database Design,我如何在Rails应用程序中存储pdf,以便用户可以访问/下载它们 在迁移中,我会使用数据类型t.binary 那么在我的控制器/视图中,我应该如何呈现这些数据呢?这里的答案可能是这取决于具体情况。取决于PDF的大小和数量,用户必须登录才能查看PDF等 如果您有很多大型PDF,那么将它们存储在数据库中可能不是一个好主意—只需将它们存储在文件系统中,并在数据库模型中存储一个文件位置即可 如果您确实希望将它们存储在数据库中,那么使用二进制列是一种可行的方法 如果用户无需登录即可下载PDF,那么您只需

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

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


那么在我的控制器/视图中,我应该如何呈现这些数据呢?

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

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

如果您确实希望将它们存储在数据库中,那么使用二进制列是一种可行的方法


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

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

我听说了一些好消息,这是一种透明地处理这些信息的方法—将文件存储在文件系统中,并引用数据库中的文件位置