为什么f.label会将'ALL'的字符串转换为'All'大写字母

mar*_*ion 7 ruby-on-rails ruby-on-rails-3

我有一个对象,其值都是大写,我希望f.label帮助程序将其打印为全部大写 - 无需进行CSS转换.

现在,如果我的AAPL对象中有字符串,f.label则将其吐出Aapl.

我不想使用CSS转换的原因是因为对象的值不总是需要全部大写.我只想f.label输出它,因为它存储在数据库中 - 最好没有任何CSS恶作剧.

我怎么做?

Rob*_*bin 15

这听起来像是在呼唤humanize().当Rails将元素名称转换为标签标题时,似乎会发生这种情况.您可能应该将标签的文本显式定义为表单元素.

<%= f.label(:aapl, 'AAPL') %>
Run Code Online (Sandbox Code Playgroud)

甚至

<%= f.label(:aapl, @yourVar) %>
Run Code Online (Sandbox Code Playgroud)

另一个选择可能是Rails提供的翻译能力.这适用于Rails> 3.1!

在你看来:

<% form_for @post do |f| %>
  <%= f.label :title %>
  <%= f.text_field :title %>
  <%= f.submit %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

在你的en.yml中:

en:
  helpers:
    label:
      post:
        title: 'Your Title'
Run Code Online (Sandbox Code Playgroud)