假设应用程序接收到这样的参数哈希
Parameters: {"utf8"=>"✓", "authenticity_token"=>"sjfsj", "user"=>{"name"=>"Joe", "mobile"=>"12345678"}, "commit"=>"Save Changes"}
这是用户
模型
{name: "value", mobile: "value", email: "value", many_others: "other_values" }
我想做的是创建
一个新散列
,其中包含所有字段(params + missing_fields_from_db
)。因此,如果参数有一些缺失的键,它将从模型中获取并添加到新的哈希中。
像这样:
{name: "Joe", mobile: "12345678", email: "value", many_others: "other_values" }
在 ruby || 中是否有可用的方法? rails
?
谢谢
您正在寻找 Hash#merge
或 Hash#reverse_merge
.区别:
a = { foo: 1, bar: 2, baf: 3 }
b = { foo: 2, bar: 1, baz: 1 }
a.merge(b)
#=> {:foo=>2, :bar=>1, :baf=>3, :baz=>1}
a.reverse_merge(b)
#=> {:foo=>1, :bar=>2, :baz=>1, :baf=>3}
请注意,Hash#merge
是纯 Ruby 方法,Hash#reverse_merge
来自 Rails。
我是一名优秀的程序员,十分优秀!