将Rails中的下划线名称转换为“漂亮”文本(与ActiveRecord一样)

时间:2010-08-18 15:14:25

标签: ruby-on-rails string

我这里有一个非常简单的问题。我只想知道是否有现成的Rails方法来实现这一目标,因为我不想重新编写已经在框架中的东西。

想一个像“this_is_an_example”这样的下划线变量名。有没有一种快速的方法可以使用Rails将其转换为“这是一个例子”甚至“这是一个例子”?我知道ActiveRecord打印表格列名如“first_name”作为“名字”,它是如何做到的?

谢谢!

3 个答案:

答案 0 :(得分:5)

已经存在的东西叫做Inflector。查看http://api.rubyonrails.org/classes/ActiveSupport/Inflector.html处的文档。

其中列出的所有方法都有关于字符串的新方法,所以在你的情况下:

st = "this_is_an_example"
st.humanize # => "This is an example"
st.titleize # => "This Is An Example"

答案 1 :(得分:2)

ruby​​脚本/控制台 加载开发环境(Rails 2.3.8)

  
    

“this_is_an_example” .titleize     => “这是一个例子”

         

“this_is_an_example” .humanize     => “这是一个例子”

  

答案 2 :(得分:1)

在询问之前我应该​​看一点解决方案。

>> string = "an_example_string"
=> "an_example_string"
>> string.titleize
=> "An Example String"
>>

在此处找到相关文档:http://api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/String/Inflections.html#M001058