我收到带有以下键的参数:
params["guest1_member1"]
params["guest2_member1"]
params["guest3_member2"]
params["guest4_member2"]
是否有一些正则表达式方法来获取包含_member1
参数?
像这样:
params["*_member1"]
这应该为您完成,无需正则表达式:
params.select { |key, _value| key.ends_with?('_member') }
这是不言自明的,从参数哈希中选择以'_member'
结尾的所有元素。
您也可以使用破坏性的:
params.keep_if { |key, _value| key.ends_with?('_member') }`
但请注意,这将从参数中永久删除所有不匹配项。
请注意,这会匹配以您的模式结尾的字符串,但如果模式可以出现在键中的任何位置,您可以切换到key.include?(...)
。
我已经看过了,不相信您可以将正则表达式传递给Hash::[]
,尽管如果我错了,会很高兴得到纠正。
您始终可以在上述块之一中使用正则表达式,尽管我相信给出的选项更具可读性。
希望无论如何都有帮助 - 让我知道你过得怎么样。