1

私は州立大学の農業研究施設用に Ruby on Rails Web サイトを開発しており、その Web サイトは大学のサーバーで実行されます。このため、サーバー上のデータは、州の Public Records Act (情報公開法 (Freedom of Information Act) の州版) を介してアクセスできます。システムのユーザーの一部は、公的記録を通じて自分のビジネス データが利用可能になることを望まない商業栽培者です。

上記の状況を考えると、ユーザーのデータをサーバーに保存するのではなく、ユーザーが自分のローカルマシンからロード/保存できるものにしたいと考えています。つまり、Web サイトをゲストとして使用し、自分のマシンからデータ モデルを入力できる必要がありますが、そのデータをサーバーに保持することはできません。(ビジネス上重要でないその他のデータはデータベースに保存されます)。

私の質問は次のとおりです。このようなシステムを開発した経験のある人は他にいますか? ActiveRecord を非データベースにバックエンドし、ローカル ストレージからロード/保存できる gem はありますか?

任意の提案をいただければ幸いです!

4

1 に答える 1

0

アプリを介してユーザーのハード ドライブに直接書き込みアクセスすることはないため、使用するローカル ストレージ メソッドは、変更に対して完全に永続的ではありません (ユーザーがファイルをアップロードし、変更を加えてからダウンロードするのに十分な知識がある場合を除きます)。新しいファイルを作成し、それをすべてまっすぐに保ちます(99.999%の確実性ではありません))。

とはいえ、ユーザーの習慣に応じて、さまざまなレベルの永続性を持つローカル ストレージを使用できます。いくつかのオプションがあります。

1. クッキー

レールを使用すると、Cookie の書き込みと読み取りに簡単にアクセスできます。

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

ただし、これは 4kB に制限されており、ユーザーが Cookie を消去すると明らかに消去されます。詳細については、http: //guides.rubyonrails.org/security.html#sessionsを参照してください。

2. ウェブストレージ

より大規模なローカル ストレージ オプションに対応する新しい Web 標準も用意されていますが、これもセッション間で保証されておらず、ブラウザ固有のままです: http://en.wikipedia.org/wiki/Web_storage

3.その他のオプション

私の提案は、ユーザーが「所有」できるある種の代替データベースを提供し、それをS3または同等のものでホストすることです。必要に応じて、すべてのユーザー用に分割された単一のデータベースにすることも、ユーザーごとに個別のデータベースにすることもできます。

ここでのより伝統的な解決策は、クライアントがマシンにインストールする実際のアプリを構築して、サービスにアクセスし、ハード ドライブにアクセスできるようにすることです。しかし、それはちょうど2010年に感じます;)

于 2013-09-25T19:58:44.223 に答える