有状态的Rails应用程序。存储数据不在数据库中

时间:2011-02-11 21:14:14

标签: ruby-on-rails ruby state stateful

我有一个Rails应用程序,包括聊天。一切正常,但现在我想在某处存储最近50条聊天消息。如果重新加载页面,我需要它来显示最后的消息。我不想使用数据库。将它存储在某种数组中会很好,但Rails是无状态的。我希望在你的帮助下让它变得更有状态。

THX

UPD

我找到了PStorehttp://www.ruby-doc.org/stdlib/libdoc/pstore/rdoc/classes/PStore.html)。它看起来对我很好,不是吗?

2 个答案:

答案 0 :(得分:2)

  • 您最简单的答案是Marshal,因为它是Ruby核心的一部分。只需将您的实际数组作为二进制文件转储到磁盘,然后根据需要将其读回。

    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将其数据库放在一个文件中,易于安装且快速轻便?

答案 1 :(得分:0)

您应该查看Redis

相关问题