让我们说应用程序收到像这样的param哈希
Parameters: {"utf8"=>"✓", "authenticity_token"=>"sjfsj", "user"=>{"name"=>"Joe", "mobile"=>"12345678"}, "commit"=>"Save Changes"}
这是user
模型
{name: "value", mobile: "value", email: "value", many_others: "other_values" }
我要做的是create
一个new hash
所有字段的组合(params + missing_fields_from_db
)。因此,如果params有一些缺失键,它将从模型中添加到新哈希。
像这样:
{name: "Joe", mobile: "12345678", email: "value", many_others: "other_values" }
ruby || rails
中是否有可用的方法?
谢谢
答案 0 :(得分:4)
您正在寻找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。