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

时间:2012-10-04 09:25:06

标签: ruby-on-rails ruby-on-rails-3

我有一个对象,其值都是大写,我希望f.label助手将其打印为全部大写 - 而不必进行CSS转换。

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

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

我该怎么做?

2 个答案:

答案 0 :(得分:14)

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

<%= f.label(:aapl, 'AAPL') %>

甚至

<%= f.label(:aapl, @yourVar) %>

另一种选择可能是Rails提供的翻译能力。这适用于Rails&gt; 3.1!

在您看来:

<% form_for @post do |f| %>
  <%= f.label :title %>
  <%= f.text_field :title %>
  <%= f.submit %>
<% end %>

在你的en.yml:

en:
  helpers:
    label:
      post:
        title: 'Your Title'

答案 1 :(得分:1)

试试这个:

f.label(topic).upcase.html_safe