Rails在会话中初始化默认值

时间:2012-07-06 08:05:45

标签: ruby-on-rails session

我有一个Web应用程序,我想在会话中存储用户首选的样式表,我需要将其默认填充到某些默认值,直到用户无法登录等。对于这个purpouses我使用session(可能不是最好的)解决方案,但没关系),我需要一个可以初始化此变量的地方。示例:

session[:user_theme] = 'default.css' 

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

1 个答案:

答案 0 :(得分: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

修改

哎呀我误读了问题。但我同意尼尔斯的意见,这是最好的选择。并且|| = aperator只会初始化一次。