用ruby哈希值替换rails模型对象键

时间:2017-10-23 09:45:43

标签: ruby-on-rails ruby

我有一个rails模型对象,如下所示

[#<Object id: 876,  input_type: 4, require_level: true>,#<Object id: 877,  input_type: 4,  require_level: true>, #<Object id: 878, input_type: 2, require_level: true>]

Input_types是一个哈希,如下所示

input_types = {"w"=>1, "x"=>2, "y"=>3, "z"=>4}

我想基于input_type属性替换

获得如下输出
[#<Object id: 876,  input_type: 4, require_level: true>,#<Object id: 877,  input_type: 4,  require_level: true>, #<Object id: 878, input_type: 2, require_level: true>]

我有以下代码:

objects.each do |object|
   replacement_key =  input_types.key(object.input_type)
   object.attributes["input_type"] = replacement_key
end

这不会产生任何结果并返回对象,因为它处于初始阶段

2 个答案:

答案 0 :(得分:1)

试试这个

assetsSubDirectory

答案 1 :(得分:0)

这样就可以了。没有json的更好的方法吗?

objects = objects.as_json
objects.each do |object|
  replacement_key =  input_types.key(object["input_type"])
  object["input_type"] = replacement_key
end