Ruby on rails 密钥相同时如何追加哈希值
以下是会员和会员的电子邮件详细信息:Ruby on rails 密钥相同时如何追加哈希值,ruby-on-rails,ruby,ruby-on-rails-4,haml,Ruby On Rails,Ruby,Ruby On Rails 4,Haml,以下是会员和会员的电子邮件详细信息: - @members.each do |member| - member.member_emails.each do |member_email| - email_hash = { member.id.to_s => { member_email.kind => member_email.email } } 当已经存在密钥时,如何追加哈希? 获取电子邮件\u散列的结果是: {"6"=>{"personal"=&g
- @members.each do |member|
- member.member_emails.each do |member_email|
- email_hash = { member.id.to_s => { member_email.kind => member_email.email } }
当已经存在密钥时,如何追加哈希?
获取电子邮件\u散列的结果是:
{"6"=>{"personal"=>"abc@gmail.com"}}
{"4"=>{"work"=>"def@yahoo.com"}}
{"4"=>{"personal"=>"xyz@gmail.com"}}
预期结果是:
{"6"=>{"personal"=>"abc@gmail.com"}}
{"4"=>{"work"=>"def@yahoo.com", "personal"=>"xyz@gmail.com"}}
非常感谢您的帮助。谢谢大家! 试试:
假设值是散列
def add_or_append(hash, key, value)
if hash[key]
hash[key].merge(value)
else
hash[key] = value
end
end
如果值是字符串:
def add_or_append(hash, key, value)
if hash[key]
hash[key] << ", #{value}"
else
hash[key] = value
end
end
def add_或_append(散列、键、值)
如果哈希[键]
hash[key]我不完全确定您想做什么(不知道上下文),但现在,您正在通过成员电子邮件
循环,并为每封电子邮件创建一个新的hash。假设您只想为每个用户创建一个哈希,您可以执行以下操作:
- @members.each do |member|
- email_hash = {}
- member.member_emails.each do |member_email|
- email_hash[member_email.kind] = member_email.email
- user_hash = { member.id.to_s => email_hash }
您的哈希示例无效。