我使用了
parameterize
方法,现在想要将其反向操作以取消参数化。请问是否有相应的方法来实现这个目的?parameterize
方法,现在想要将其反向操作以取消参数化。请问是否有相应的方法来实现这个目的?没有。 parameterize
是一种有损转换,您无法将其转换回来。
这是一个例子。当您进行转换时:
My Awesome Pizza
进入
my-awesome-pizza
你不知道原始字符串是什么。
My Awesome Pizza
MY AWESOME PIZZA
等等。 这是一个简单的例子。 但是,从源代码中可以看到,某些字符被剥离或转换为分隔符(例如逗号),你将无法恢复它们。
如果您只需要近似转换,则只需将破折号转换为空格,修剪多个空格并应用适当的大小写转换即可。
titleize
函数(源代码):"this-is-my-parameterized-string".titleize
=> "This Is My Parameterized String"
"hello-world foo bar".titleize
=> "Hello World Foo Bar"
如上所述,这不会将字符串恢复为其预参数化形式,但如果这不是问题,这可能会有所帮助!
def deparametrize(str)
str.split("-").join(" ").humanize
end
:)
tr
。如果 str = "stop-the-bad-guy",那么 str.tr("-", " ").humanize
将返回 "Stop the bad-guy"。 - Shadoath
parametrize
方法会移除一些关于原始字符串的信息。 - Marek Lipka