ruby-on-rails - Rails session 数据 - 存储在哈希中

标签 ruby-on-rails ruby session hash

我在 Rails View 上有一个表单,该表单将数据提交到将代表购物车摘要页面的页面。

当我将数据提交到下一页时,它们根据控制台输出按如下方式传输。

"team"=>{"team_name"=>"Joe Blogs", "email"=>"joe@bloggs.com", "player1"=>"
3", "player2"=>"4", "player3"=>"5"}

我想将此数据存储为 session 变量,即作为哈希,因此如果另一个团队提交到摘要页面,我可以将其作为另一个哈希条目添加到 session 中。即团队[1]、团队[2]。 然后我可以访问 team[1].team_name 等并相应地使用它。

总而言之,我希望用户能够填写表格并将其放入购物车。然后他们可以回去再做同样的事情。最后,他们可以查看他们的购物车并删除他们不需要的任何记录、清除购物车或将他们选择的内容提交到数据库中。

我不知道该怎么做,甚至不知道该怎么做。

关于如何实现这个的任何解决方案或建议?

最佳答案

您可以轻松地将哈希存储在 Rails session 中。

例子:

class SomeController < ApplicationController
  def some_action
    session[:cart] = {"team_name"=>"Joe Blogs", "email"=>"joe@bloggs.com", "player1"=>"3", "player2"=>"4", "player3"=>"5"}
  end
end

但是,默认情况下,Rails 将 session 存储在 cookie 中,并且 cookie 的大小限制为仅 4 KB 的数据,因此如果您的散列将包含多个键,您将需要为 session 使用其他东西存储,例如数据库。

要将 session 存储在数据库中,您可以使用 activerecord-session_store gem 。

关于ruby-on-rails - Rails session 数据 - 存储在哈希中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33726355/

相关文章:

ruby-on-rails - 在 Rails 中将数据公开为 XML 和 JSON

php - 相同的域,不同的文件夹 PHP session

mysql - 从 Rails 3 调用 MySQL 存储过程(返回结果集)时出错

ruby-on-rails - 使用 rails 控制台时出现 rails 5(对象不支持#inspect)

html - 如何在 Ruby on Rails 中添加背景图片

ruby - 哈希字符串中的子词(和短语)

javascript - JavaScript session 何时过期?如何在 session 结束时删除cookie?

php - 如何确保用户不能在 PHP 中使用同一帐户登录两次?

ruby-on-rails - Rails 虚拟模型中的属性本地化

ruby-on-rails - 在 Rails 3.1 中,我如何检查模型的 has_many 关联的任何实例是否已更改?