Ruby将字符串转换为符号

Kil*_*ler 17 ruby ruby-on-rails

嗨我想创建一个具有size参数的视图助手(例如 func(size))问题是这个大小必须在函数中使用,:size即如果我传入mediumfunc我需要将其转换为:medium.

我该怎么做呢?

Tob*_*rds 36

有很多方法可以做到这一点:

如果你的字符串没有空格,你可以简单地这样:

"medium".to_sym => :medium

如果你的字符串有空格,你应该这样做:

"medium thing".gsub(/\s+/,"_").downcase.to_sym => :medium_thing

或者如果您使用的是Rails:

"medium thing".parameterize.underscore.to_sym => :medium_thing

参考:在ruby中将字符串转换为符号

  • 请注意,在ruby 2.2之前,符号不会被垃圾收集.因此,如果在动态字符串上执行to_sym,则应用程序将耗尽内存. (3认同)
  • 从技术上讲,您不需要将空格转换为任何空格. (2认同)