Ruby on rails rails匹配params中字符串的结尾

Ruby on rails rails匹配params中字符串的结尾,ruby-on-rails,Ruby On Rails,我正在接收带有如下键的参数: params["guest1_member1"] params["guest2_member1"] params["guest3_member2"] params["guest4_member2"] 是否有某种正则表达式方法可以获取包含\u member1的参数 比如: params["*_member1"] 这应该可以为您完成,无需正则表达式: params.select { |key, _value| key.ends_with?('_member') }

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

params["guest1_member1"]
params["guest2_member1"]
params["guest3_member2"]
params["guest4_member2"]
是否有某种正则表达式方法可以获取包含
\u member1
的参数

比如:

params["*_member1"]

这应该可以为您完成,无需正则表达式:

params.select { |key, _value| key.ends_with?('_member') }
从以
“u member”
结尾的params散列中选择所有元素,这是很自然的

您还可以使用以下命令:

params.keep_if { |key, _value| key.ends_with?('_member') }`
但请注意,这将从参数中永久删除所有不匹配项

请注意,这与以模式结尾的字符串相匹配,不过您可以切换到
键。如果模式可以出现在键中的任何位置,请包括?(…)

我已经看过了,不相信您可以将正则表达式传递给
散列::[]
,但是如果我错了,我们会很高兴得到纠正

您可以在上面的一个块中使用正则表达式,尽管我相信给出的选项更具可读性


不管怎样,希望这能有所帮助-让我知道你进展如何。

虽然你可以使用regex/string matching/etc玩游戏,但是规范化你的参数可能会更有意义,这样它们的格式会更有用。