假设我的名字为"Master Yoda"
我如何自动将其转换为小写,并用下划线替换空格......或者只是去除空格。
所以也许把它变成master_yoda
或masteryoda
我正在寻找最简洁的解决方案。
答案 0 :(得分:1)
'Master Yoda'.underscore # => 'master yoda'
'MasterYoda'.underscore # => 'master_yoda'
'Master Yoda'gsub(' ', '') # => 'MasterYoda'
'Master Yoda'.gsub(' ', '').downcase # => 'masteryoda'
答案 1 :(得分:0)
执行此操作的方法是来自Rails'underscore
模块的ActiveSupport::CoreExtensions::String::Inflections
。
作为补充说明,如果任何本机Rails方法没有完全符合您的要求,请务必单击api.rubyonrails.org上的“显示源”链接。在这种情况下,显示Inflections.underscore
的来源告诉我们它实际上只是在调用者字符串对象上调用Inflector.underscore
。
在搜索该文档时,我们可以在此找到真正完成工作的方法(可以这么说):http://api.rubyonrails.org/classes/ActiveSupport/Inflector.html#M000710
我知道你想要最简洁的答案,但只要知道它是如何“在幕后工作”相对简单(并且也有益于学习)。