如何在Rails中为会话设置变量?

时间:2016-07-18 11:21:39

标签: ruby-on-rails

我刚刚开始使用Rails,而且我对如何为会话设置变量感到有些困惑。

在我的应用中,我希望用户能够选择英语或法语,当他们点击文章时,它会以所选语言显示。

如果他们选择英语,则会将其保存为' Preferred_lang'。但是,他们可以随时更改它。

现在,我在文章展示页面的开头有这个条件:

- if current_user.preferred_lang = 'English'
  = render 'english'
- else
  = render 'french'

对我来说,这似乎并不高效。有没有办法设置' current_language'在会话开始时,如果用户更改它,则更新它?

1 个答案:

答案 0 :(得分:0)

它只是一个关键的价值对(哈希)。所以你可以这样设置:

session[:preferred_lang] = @current_user.preferred_lang

然后你可以使用它:

if session[:preferred_lang]
  # I found a previously set preferred_lang
else
  # No previously set prefferd_lang
end

然后你可以随时更新它,如果你愿意,可以删除。