除非值等于某个值,否则分配哈希值

时间:2015-08-12 01:12:38

标签: ruby hash

我正在尝试更新散列的键值对,除非该值等于某个值。一个例子是:

def sub(name)
  :name => name unless :name == "Matt"
end

有什么可以做的吗?

1 个答案:

答案 0 :(得分:0)

根据我的理解,你可能想要完成三件事,所以我会告诉你如何做到这一切。

1)如果当前hash[:name]不等于name,则将hash[:name]分配给'Matt'

要做到这一点:

hash[:name] = name unless hash[:name] == 'Matt'

2)如果hash[:name]不等于name,请将name分配给'Matt'

要做到这一点:

hash[:name] = name unless name == 'Matt'

编辑:

3)根据你的评论。我相信你需要围绕条件括号,因为它在哈希中。

 gb.lists.update_member({ :name => (name unless name == "Matt") })