0

我有一个 Web 应用程序,我想将用户喜欢的样式表存储在会话中,我需要默认将其填充为某个默认值,直到用户未登录等。为此,我使用会话(可能不是最佳解决方案,但它没关系),我需要一个可以初始化这个变量的地方。例子 :

session[:user_theme] = 'default.css' 

我不想在过滤某些功能之前每次都检查它,我想初始化一次,然后只通过 UI 进行更改。你能帮我找到更好的地方吗?

4

1 回答 1

1

我认为应用程序控制器是一个好地方。类似的东西应该有效。

class ApplicationController < ActionController::Base
  before_filter :set_theme

  def set_theme
    session[:user_theme] ||= (current_user ? current_user.preferred_theme : 'default.css')
  end
end

编辑

哎呀,我确实误读了问题。但我确实同意 Niels,这是最好的放置位置。并且 ||= aerator 只会将其初始化一次。

于 2012-07-06T08:13:34.190 回答