ruby-on-rails - 如何在 Rails 中设置 session 变量?

标签 ruby-on-rails

我刚刚开始使用 Rails,对于如何为 session 设置变量有点困惑。

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

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

现在,我在文章显示页面的开头有这样的情况:

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

这对我来说似乎不太有效。有没有办法在 session 开始时设置“current_language”,然后在用户更改时更新它?

最佳答案

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

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

然后您可以随时更新它,并根据需要删除它。

关于ruby-on-rails - 如何在 Rails 中设置 session 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38435434/

相关文章:

mysql - 在 Ruby 和 MySQL 中保持数据最新

ruby-on-rails - Ruby Passenger 显示来自公众而不是应用程序的内容

ruby-on-rails - schema.rb 中的 ID 列

ruby-on-rails - 使用 Active Record 查找连接表

ruby-on-rails - 无法在 Rails 应用程序中连接 PhantomJS 和 Poltergeist

ruby-on-rails - ZenTest 自动测试不运行测试

ruby-on-rails - 加密密码以匹配存储的加密密码。

ruby-on-rails - 即使照片确实上传,Carrierwave 也会返回 406 Not Acceptable

ruby-on-rails - Rails 4 + 在项目中使用 themeforest 模板

ruby-on-rails - Rails 4.2.2-Windows 7/: bundle exec guard 的 git Bash 上未显示测试结果