将字符串化数组转换回数组

Ada*_*NYC 4 postgresql ruby-on-rails hstore

我使用hstore与Postgres 9.2和Rails 3.2来存储我的对象,如下所示:

class User
  user_hstore = {:user_id =>"123", :user_courses => [1,2,3]}
end
Run Code Online (Sandbox Code Playgroud)

现在,当我检索user_courses时,我得到一个这样的字符串: '[1, 2, 3]'

如何将此字符串转换为Rails数组?更好的是,有没有办法在hstore对象中存储数组,以便Rails自动将其作为数组类型检索?

Lec*_*Lao 8

JSON.parse "[\"1018\", \"1037\", \"1045\", \"1042\"]"
#=> ["1018", " 1037", " 1045", " 1042"]
Run Code Online (Sandbox Code Playgroud)


小智 6

为什么不用eval?

eval('[1, 2, 3]')
#=> [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

显然,不要在任意或用户输入的数据上执行此操作,而是在显示的整数数组上执行此操作,这非常安全.


ush*_*sha 2

要将其转换为数组:

user_courses.gsub('[', '').gsub(']', '').split(",")
Run Code Online (Sandbox Code Playgroud)

为了使检索更简单,您可以将其存储为字符串

user_hstore = {:user_id =>"123", :user_courses => '1,2,3'}
Run Code Online (Sandbox Code Playgroud)