将文件添加到Ruby on Rails应用程序中的数据库?
我刚刚开始学习Ruby on Rails,我想创建一个应用程序,允许我将文件添加到数据库。目前,我正在使用Eclipse的Aptana插件开发rails应用程序,并且应用程序使用默认的sqllite db。将文件添加到Ruby on Rails应用程序中的数据库?
我试图产生具有以下参数的支架:documents title:string file:varbinary
。然后我做'耙' - >'db' - >'迁移'。当我迁移到本地主机/文档并单击“新建文档”时,应用程序失败并显示错误。
我想要做的是点击'新文档',有一个字段,允许我浏览本地计算机上的文档,选择文档并将其添加到轨道应用程序中的数据库。
它是一个特定类型的文件要补充的吗?
我只是问,因为如果它不是一种从数据库中受益的数据(文本数据可能是可搜索的,二进制数据不是),那么你更好地将它存储在文件系统中并直接提供 - 尤其是对于图像或视频等内容 - 而不是将其插入到数据库中,并且每次用户请求时都必须通过应用程序。
我并不是说,有没有你可能想在数据库文件中的任何原因,但我可以把它看成最后的手段,十年后的网络编程,我不能跨越的情况下,来这是必要的。
我会强烈建议attachment_fu插件,因为这可以让你创建模型带附件相当好听,回形针插件是另外一个也不错!
如果您在决定使用哪一个附件时遇到问题,就我所知,Paperclip使多个附件更容易,比如Album拥有多张照片,并且Attachment_fu对于单个附件(例如用户有一个附件)更为轻松显示图片。
优秀。在这里找到一个很好的教程:'http:// clarkware.com/cgi/blosxom/2007/02/24#FileUploadFu' – Seth 2009-12-31 01:02:13
我们在我正在管理的网站上做这样的事情。我不同意将这些文件存储在数据库中,我同意这里的其他海报,并建议您尝试像回形针一样的东西。
一个忠告:如果你想访问控制,确保回形针不保存在/公众,其中,如果他们知道该网址的人可能会访问这些地方您的文件。通过控制器中的send_file将文件传送给用户。
我们正试图实施一个文件管理系统,它实现了公司流程。因此,文档需要存储在somesort的中央存储库中,并且它必须存在于某些时间只能由特定用户访问的状态。有了这样的控制要求 - 我认为这可能只能使用数据库? – Seth 2009-12-31 00:47:39
实际上,您可以通过几种方式实现这一点 - 如果数据存储在文件系统的某个区域,且只能由运行rails和sysadmins的用户访问,那么您可以根据访问控制执行任何操作,因为文件请求必须通过您的应用程序来访问,因此您可以将权限详细信息存储在数据库中,并仅通过应用程序层将文件提供给允许的用户。或者你可以在文件系统上使用权限并以这种方式进行管理 - 可能更容易让系统管理员使用。 – glenatron 2010-01-02 00:11:41