[英]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.