0

我有这样写的代码: <%= f.label "*Position Title" %>.

我希望它能够输出*Position Title,但如果输出*position title没有*,它会Position Title用大写字母表示。

为什么会发生这种情况,我该如何*Position Title取而代之?

4

2 回答 2

5

尝试:

<%= f.label nil, "*Position Title" %>

更新:

挖完源码:FormHelper

导致这种情况发生的to_label_tag方法调用。method_name.humanize因此,真正的问题并不是星号,而是导致这种情况的人性化方法。

以下示例应该让您清楚地了解人性化的作用。

> "*Position".humanize                
=> "*position" 

> "1Position".humanize
=> "1position" 

> "POSITION".humanize
=> "Position" 

> "aPosition".humanize 
=> "Aposition" 
于 2013-08-06T18:00:08.900 回答
0

由于德国标签,我也遇到了这个问题。

<%= label :my_attribute, 'My Attribute', class: "control-label" %>

呈现:

<label for="my_attribute" class="control-label">My attribute</label>

但我需要带有“A”而不是“a”的“属性”。是的...德国有大写和小写...

有什么帮助?看看标签实现的内部。您可以使用模型定义标签作为第一个参数:

<%= label :the_model, :my_attribute, 'My Attribute', class: "control-label" %>

呈现:

<label for="the_model_my_attribute" class="control-label">My Attribute</label>

是的!有效!

于 2015-05-13T09:23:31.807 回答