我有一个 Ruby on Rails 站点,该站点只需要很短的时间,在此期间,用户将各种对象添加到 mySQL 数据库,对它们进行评论,将自己与它们关联等等等等。
问题是这样的:直到明年一周左右,我将清除数据库并再次使用它(从头开始),才不再需要该站点。存档当前站点以使现有内容仍然可见但不能添加新内容的最佳方法是什么?最好的方法是指使用最少系统资源的方法,服务器将是最安全的,等等。
有什么建议么?
我有一个 Ruby on Rails 站点,该站点只需要很短的时间,在此期间,用户将各种对象添加到 mySQL 数据库,对它们进行评论,将自己与它们关联等等等等。
问题是这样的:直到明年一周左右,我将清除数据库并再次使用它(从头开始),才不再需要该站点。存档当前站点以使现有内容仍然可见但不能添加新内容的最佳方法是什么?最好的方法是指使用最少系统资源的方法,服务器将是最安全的,等等。
有什么建议么?
如果您以标准方式编写应用程序,即所有修改都是通过create
,update
或destroy
控制器中的操作完成的,请在您的控制器中添加一个before_filter
将ApplicationController
禁止访问这些方法(可能new
还有 和edit
)。
您可能还想检查您routes.rb
是否没有任何其他操作可以修改您的资源并将它们也添加到您的过滤器中。
使用网络爬虫并将其保留为静态 html。
为什么不直接删除数据库用户的创建、插入和删除权限?
这取决于您的数据库中的关联有多复杂。如果它非常简单,您可以编写仅显示您的数据库内容的简单 php 站点(或者也许有一些东西可以做到)。这是最便宜的解决方案(通过内存和 cpu 资源),但可能需要一些工作才能实现。
如果您不想处理您的应用程序,那么最快的方法(就您的时间而言)可能是使用@szeryf 方法。只需添加所有路线:only => [:show, :index]
。
如果视图不是用于编辑和查看数据的通用视图,您可以使用不同的控制器将它们分开,一个用于查看,另一个用于 CRUD 操作。然后是启用和禁用第二个的问题,可能使用路由。