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

san*_*ank 8 ruby ruby-on-rails

我用的parameterize方法.我想取消参数化.有没有办法做相反的事情parameterize

Sim*_*tti 14

不,那里没有.parameterize是一种有损转换,你无法将其转换回来.

这是一个例子.当你转换

My Awesome Pizza
Run Code Online (Sandbox Code Playgroud)

my-awesome-pizza
Run Code Online (Sandbox Code Playgroud)

你不知道原来的字符串是不是

My Awesome Pizza
MY AWESOME PIZZA
Run Code Online (Sandbox Code Playgroud)

这是一个简单的例子.但是,正如您从源代码中看到的那样,某些字符被剥离或转换为分隔符(例如逗号),您将无法恢复它们.

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


小智 11

在 Rails 中有titleize来源):

"this-is-my-parameterized-string".titleize
=> "This Is My Parameterized String"
Run Code Online (Sandbox Code Playgroud)
"hello-world foo bar".titleize
=> "Hello World Foo Bar"
Run Code Online (Sandbox Code Playgroud)

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


The*_* Oz 9

我和Simone在一起,但你可以随时随地

def deparametrize(str)
  str.split("-").join(" ").humanize
end
Run Code Online (Sandbox Code Playgroud)

:)

  • 看看`tr`.如果str ="stop-the-bad-guy"那么`str.tr(" - ","").humanize`将返回"Stop the bad-guy" (2认同)