【问题标题】:Change the automatic text generated from f.label更改从 f.label 生成的自动文本
【发布时间】:2011-10-01 23:47:58
【问题描述】:

我有密码

<%= form_for(@user) do |f| %>
    <div>
    <%= f.label :email, :class=>'inline betaLabelTextField' %>
    <%= f.text_field :email, :class=>'betaTextField' %>
    </div>
<% end %>

问题是这段代码会自动生成html

<div> 
        <label class="inline betaLabelTextField" for="user_email">Email</label> 
        <input class="betaTextField" id="user_email" name="user[email]" size="30" type="text" /> 
    </div> 

在表单中。如何将“电子邮件”更改为“电子邮件地址”?

【问题讨论】:

    标签: html ruby-on-rails forms text label


    【解决方案1】:

    最简单的方法是这样做:

    <%= form_for(@user) do |f| %>
        <div>
        <%= f.label :email, "Email Address", :class=>'inline betaLabelTextField' %>
        <%= f.text_field :email, :class=>'betaTextField' %>
        </div>
    <% end %>
    

    【讨论】:

    • @moritz(下)答案更像是 Rails 方式。主要的重要方面是保持干燥。当在 activerecord:models:attributes: 中定义时,您将 a) 避免不必要的代码,并且 b) 在每种语言的每种形式中始终使用正确的单词
    • 如何修改所有的f.label,在末尾添加,例如一个“:”..如何修改类?
    【解决方案2】:

    这是通过将适当的 i18n 值添加到 config/locale/en.yml 来完成的。请查看http://guides.rubyonrails.org/i18n.html#translations-for-active-record-models 的指南,了解活动记录值的文件格式。

    【讨论】:

    • 这是一种方法,但除非您已经在进行国际化,否则没有必要。
    • 我不会说它没有必要。我认为,这仅取决于您要将这些数据保存在哪里。如果您认为命名与视图是分开的,那么将它们保存在翻译文件中是有意义的。所以这有点归结为品味问题。
    • 我猜你是对的。当我想到它时,你的方式将在任何地方更新标签,以防它在其他地方使用。
    • 这里肯定有一些死灵,但如果它可以帮助其他人(或我自己,下次我必须用谷歌搜索),documentation for the label method 中有一个很好的例子。
    猜你喜欢
    • 1970-01-01
    • 2013-12-27
    • 2019-01-21
    • 2018-07-18
    • 2013-03-31
    • 2020-11-07
    • 2012-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多