1

首先,这可能不是最好的标题,但在这个时候似乎是有道理的。

我正在查看的是加载应该在网络应用程序的生命周期中存在的资源。稍后可能会进行一些配置以进行手动刷新,但目前情况并非如此。

我们有一个复杂的权限结构,由于多种原因,它驻留在数据库中。我不想为每个页面加载都带来开销,因此我希望它驻留在内存中。我的第一直觉是创建一个单例,我将其加载到其中,并在需要时使用它来查找权限。我理解对单身人士的犹豫,并想知道这是否是一种糟糕的方法。

我不想走 yaml 或其他存储机制的路线,权限必须驻留在数据库中以供其他依赖项使用。也就是说,在 Rails 中,有效加载和读取数据的最合适方法是什么?

4

2 回答 2

3

这听起来像是对缓存的完美使用

permissions = Rails.cache.fetch( 'permissions' ) do
  # Permissions don't exist yet, perform long operation and load from DB
  load_permissions_from_db
end

更多细节在这里

于 2011-04-26T17:06:19.543 回答
0

我不完全确定你的意思,但我认为有几种方法可以去

  • 缓存(例如caches_page :pagecaches_action :action在控制器中)
  • 或者可能在 cookie/会话数据中存储一些东西,当然我并不完全理解这些数据的性质,所以我不知道什么会更好,如果有的话
于 2011-04-26T17:12:06.433 回答