1

我才刚刚开始在 Rails 上学习 ruby​​,我想创建一个允许我将文件添加到数据库的应用程序。目前,我正在使用适用于 Eclipse 的 Aptana 插件开发 Rails 应用程序,并且该应用程序使用默认的 sqllite db。

我尝试使用以下参数生成脚手架:documents title:string file:varbinary. 然后我做一个'rake'->'db'->'migrate'。当我迁移到 localhost/documents 并单击“新文档”时,应用程序失败并显示错误。

我想做的是单击“新建文档”,有一个字段允许我在本地计算机上浏览文档,选择文档并将其添加到 rails 应用程序上的数据库。

4

4 回答 4

4

现在回形针比 attachment_fu 更受推荐。与您的活动记录模型一起使用非常简单易用。

于 2009-12-31T00:48:09.113 回答
1

它是您要添加的特定类型的文件吗?

我只是问,因为如果它不是从数据库中受益的那种数据(文本数据可能是可搜索的,二进制数据不是)那么你最好将它存储在文件系统中并直接提供它 - 特别是对于像这样的东西图像或视频 - 而不是将其插入数据库并且每次用户请求时都必须通过您的应用程序。

我并不是说您可能没有任何理由希望在数据库中拥有一个文件,但我将其视为最后的手段,并且在十年的网络编程中,我没有遇到过有必要的情况.

于 2009-12-31T00:40:19.723 回答
1

我强烈推荐 attachment_fu 插件,因为它可以让您很好地创建带有附件的模型,Paperclip 插件也是另一个不错的插件!

如果您在决定使用哪一个时遇到困难,据我所知,Paperclip 可以更轻松地处理多个附件,例如相册有很多照片,而 Attachment_fu 更容易处理单个附件,例如用户有一张显示图片。

于 2009-12-31T00:45:39.117 回答
1

我们在我管理的网站上做这样的事情。我不同意将这些文件存储在数据库中,而是同意此处的其他海报,并建议您尝试使用 Paperclip 之类的东西。

一个警告:如果您想要访问控制,请确保回形针不会将您的文件保存在 /public 下的某个位置,如果知道 URL,任何人都可以访问它们。通过控制器中的 send_file 将文件交付给用户。

于 2009-12-31T01:05:15.413 回答