簡體   English   中英

用ruby hash值替換Rails模型對象鍵

[英]Replacing rails model object key with ruby hash value

我有一個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

這不會產生任何結果,並返回初始狀態的對象

試試這個

new_objects = objects.map do |object|
  replacement_key =  input_types.key(object.input_type)
  object.input_type = replacement_key
  object
end.as_json

這解決了。 沒有json還有更好的方法嗎?

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM