我有这样写的代码:
<%= f.label "*Position Title" %>
.
我希望它能够输出*Position Title
,但如果输出*position title
没有*,它会Position Title
用大写字母表示。
为什么会发生这种情况,我该如何*Position Title
取而代之?
我有这样写的代码:
<%= f.label "*Position Title" %>
.
我希望它能够输出*Position Title
,但如果输出*position title
没有*,它会Position Title
用大写字母表示。
为什么会发生这种情况,我该如何*Position Title
取而代之?
尝试:
<%= f.label nil, "*Position Title" %>
更新:
挖完源码:FormHelper
导致这种情况发生的to_label_tag
方法调用。method_name.humanize
因此,真正的问题并不是星号,而是导致这种情况的人性化方法。
以下示例应该让您清楚地了解人性化的作用。
> "*Position".humanize
=> "*position"
> "1Position".humanize
=> "1position"
> "POSITION".humanize
=> "Position"
> "aPosition".humanize
=> "Aposition"
由于德国标签,我也遇到了这个问题。
<%= 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>
是的!有效!