rails对于字符串是否与`parameterize`相反?

时间:2015-06-16 09:52:46

标签: ruby-on-rails ruby

我使用了parameterize方法。我想取消参数化。有没有办法与parameterize相反?

3 个答案:

答案 0 :(得分:14)

不,没有。 parameterize是一种有损转换,您无法将其转换回来。

这是一个例子。转换时

My Awesome Pizza

my-awesome-pizza

您不知道原始字符串是否

My Awesome Pizza
MY AWESOME PIZZA

等。这是一个简单的例子。但是,正如您在source code中看到的那样,某些字符会被删除或转换为分隔符(例如逗号),您将无法恢复它们。

如果您只想进行近似转换,只需将破折号转换为空格,修剪多个空格并应用适当的大小写转换。

答案 1 :(得分:8)

我和Simone一起参演了这个,但你可以随时使用

def deparametrize(str)
  str.split("-").join(" ").humanize
end

:)

答案 2 :(得分:0)

Rails中有titleizesource):

"this-is-my-parameterized-string".titleize
=> "This Is My Parameterized String"
"hello-world foo bar".titleize
=> "Hello World Foo Bar"

如上所述,这不会将字符串恢复为其预参数化的形式,但是如果这不是一个问题,那么这可能会有所帮助!