如何使用rails存储cookie中的值数组?

时间:2014-12-18 10:40:42

标签: ruby arrays ruby-on-rails-3 cookies

我想在cookie中保存一组值。我有一个名为add_names的方法。每当调用此方法时,我需要在cookie中保存名称。我试过下面的代码。但它不起作用,它只保留最后一个值。

def add_names(name)
  cookies[:user_names] = name
end

请建议我这样做。提前谢谢。

2 个答案:

答案 0 :(得分:2)

Cookies将字符串存储在其中。如果您需要存储用户名列表,还可以附加名称

cookies[:user_names] = '' if cookies[:user_names].nil?
cookies[:user_names] = cookies[:user_names] + "#{value} ,"

答案 1 :(得分:1)

最简单的方法是:

cookies[:user_names] = @users.map { |user| user.name }

问题是,在each循环中,您将:user_names Cookie的值重新定义为单个用户。

如果要将值附加到现有数组,则可以执行以下操作:

def add_names name
  # Initialize it to an empty array, if not set
  cookies[:user_names] ||= []
  # Then, append the user name
  cookies[:user_names] << name
end