rails匹配params中字符串的结尾

时间:2018-05-09 15:48:38

标签: ruby-on-rails

我正在接收带有以下键的参数:

params["guest1_member1"]
params["guest2_member1"]
params["guest3_member2"]
params["guest4_member2"]

是否有一些正则表达式来获取包含_member1的参数?

类似的东西:

params["*_member1"]

1 个答案:

答案 0 :(得分:0)

这应该为你做,没有正则表达式:

params.select { |key, _value| key.ends_with?('_member') }

它非常自我解释,选择以'_member'结尾的params散列中的所有元素。

你也可以使用破坏性的:

params.keep_if { |key, _value| key.ends_with?('_member') }`

虽然注意将永久删除params中的所有非匹配。

请注意,这会匹配以您的模式结尾的字符串,但如果模式可以出现在密钥中的任何位置,则可以切换到key.include?(...)

我已经看过了,并且不相信你可以将正则表达式传递给Hash::[],但如果我错了就会很高兴得到纠正。

您可以在上述某个块中使用正则表达式,但我相信给出的选项更具可读性。

希望无论如何都有所帮助 - 让我知道你是如何继续下去的。