1

我正在为州立大学农业研究机构开发一个 Ruby on Rails 网站,该网站将在大学服务器上运行。因此,服务器上的数据将可以通过州公共记录法案(信息自由法案的州版本)访问。该系统的一些用户将是商业种植者,他们不希望通过公共记录获得他们的商业数据。

鉴于上述情况,我希望用户的数据不存储在服务器上,而是用户可以从他们自己的本地机器加载/保存的东西。换句话说,他们应该能够以访客身份使用网站,并从他们自己的机器上填充数据模型,但不能将这些数据保存在服务器上。(其他非业务敏感数据将存储在数据库中)。

我的问题是:有没有其他人有过开发这样的系统的经验,是否有任何宝石可以将 ActiveRecord 后端到非数据库,并且可以从本地存储加载/保存?

任何建议,将不胜感激!

4

1 回答 1

0

您不会直接通过您的应用程序对用户的硬盘驱动器进行写访问,因此您使用的任何本地存储方法都不会真正持久地更改(除非您的用户足够精通上传文件、进行更改然后下载一个新文件并保持原样(99.999% 肯定不会)。

也就是说,您可以根据用户的习惯使用具有不同程度持久性的本地存储。你有几个选择:

1. 饼干

使用 Rails,您可以像这样轻松访问写入和读取 cookie

session[:data_name] = <your data>
session[:data_name] # => <your data>

但是,这仅限于 4kB,并且显然会在用户清除其 cookie 时被清除。有关更多信息,请参阅http://guides.rubyonrails.org/security.html#sessions

2.网络存储

还有一个新的网络标准,用于更大的本地存储选项,但这在会话之间不能保证,并且仍然是特定于浏览器的:http ://en.wikipedia.org/wiki/Web_storage

3. 其他选择

我的建议是提供某种用户可以“拥有”的备用数据库,并将其托管在 S3 或同等设备上。它可以是为所有用户拆分的单个数据库,也可以是为每个用户拆分的单独数据库,具体取决于您的需要。

这里更传统的解决方案是为客户构建一个实际的应用程序以安装在他们的机器上,该应用程序可以访问您的服务并可以访问他们的硬盘驱动器。但这只是2010年的感觉;)

于 2013-09-25T19:58:44.223 回答