2012-10-22 4 views
77

Ich möchte ein Etikett in form_for anzuzeigen:Text für Schienen form_for Label

<div class="field"> 
    <%= f.label :name %><br /> 
    <%= f.text_field :name %> 
</div> 

Dieses das Label "Name" erzeugt, aber ich will es "Your Name" sein. Wie kann ich es ändern?

Antwort

143

Der zweite Parameter zu label Helfer wird Ihnen ermöglichen, benutzerdefinierten Text festzulegen.

<%= f.label :name, 'Your Name' %> 

Verwenden Sie Ruby on Rails Documentation, um nach Hilfsmethoden zu suchen.

+1

Thank you! Könnten Sie mir bitte mitteilen, wie ich in der Dokumentation so etwas nachschlagen kann? –

+2

Gehen Sie einfach zum obigen Link und geben Sie die gesuchte Methode in das Suchfeld ein. 'label' ist unter' ActionView :: Helpers :: FormBuilder' und 'ActionView :: Helpers :: FormHelper' aufgelistet. 'ActionView :: Helpers :: FormBuilder' ist der, an dem wir interessiert sind, aber es gibt keine Beschreibung. Wenn Sie sich die Methodendeklaration ansehen, können Sie sehen, dass der zweite Parameter 'text' ist. In diesem Beispiel ist es nicht sehr geradlinig. Aber diese Dokumentationsseite ist normalerweise ziemlich gut. – gylaz

+0

Ich sehe, danke! –

23

Sie können benutzerdefinierten Beschriftungstext über i18n angeben. In config/locales/en.yml, und vorausgesetzt, Ihr Benutzermodell user benannt ist, wird die folgende hinzufügen:

helpers: 
    label: 
     user: 
     name: Your Name 

Diese Sie

<%= f.label :name %> 

ohne Your Name zu codieren, die mit zu halten, ermöglicht.

Weitere Informationen zu i18n finden Sie unter this. Dokumentation auf der label beziehen sich auf this.

0

Auf Rails 5.1.0 funktioniert die oben angenommene Antwort nicht.

Der erste übergebene Parameter kann als benutzerdefiniertes Label verwendet werden.

"<% = f.label: Handy, "Mobil No:" %>"