1

チャットを含む Rails アプリケーションがあります。すべて正常に動作しますが、最近の 50 件のチャット メッセージをどこかに保存したいと考えています。ページがリロードされた場合に最後のメッセージを表示する必要があります。データベースを使いたくない。なんらかの配列に格納するとよいのですが、Rails はステートレスです。あなたの助けを借りて、もう少しステートフルにしようと思っています。

どうも

更新日:

見つけましたPStorehttp://www.ruby-doc.org/stdlib/libdoc/pstore/rdoc/classes/PStore.html)。私にはかなり良さそうですよね?

4

2 に答える 2

2
  • Rubyコアの一部であるため、最も簡単な答えはMarshalです。実際の配列をバイナリ ファイルとしてディスクにダンプし、必要に応じて読み戻すだけです。

    MYDB = 'mydb.marshal'
    
    # Write to disk
    last_50 = [ "foo", "bar" ]
    File.open( MYDB, 'wb' ){ |f| f << Marshal.dump( last_50 ) }
    
    # Load from disk
    last_50 = Marshal.load( File.open( MYDB, 'rb' ){ |f| f.read } )
    p last_50
    #=> ["foo", "bar"]
    
  • ファイル形式を人間が読める形式にしたい場合は、YAML (Ruby 標準ライブラリの一部) またはJSONを gem として試してください。どちらもプレーンテキスト ファイル形式で、ファイルにダンプして表示し、再度読み込むことができます。

  • あなたは「データベースはいらない」と言っていますが、その理由は言いません。SQLiteは単一のファイルにデータベースがあり、インストールが簡単で、高速で軽量であることをご存知ですか?

于 2011-02-11T22:16:16.497 に答える
0

あなたはRedisを見るべきです

于 2011-02-11T21:17:06.253 に答える