レールform_forラベルのカスタムテキスト


101

にラベルを表示したいform_for

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

これにより「名前」というラベルが生成されますが、「あなたの名前」にしたいのです。どうすれば変更できますか?

回答:


184

labelヘルパーの2番目のパラメーターでは、カスタムテキストを設定できます。

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

Ruby on Railsのドキュメントを使用してヘルパーメソッドを検索します。


1
ありがとうございました!ドキュメントでこのようなものを検索する方法を教えてください。
ポールS.

2
上記のリンクに移動し、検索ボックスに探している方法を入力してください。およびのlabel下にリストされActionView::Helpers::FormBuilderていActionView::Helpers::FormHelperます。ActionView::Helpers::FormBuilder私たちが興味を持っているものですが、説明はありません。メソッド宣言を見ると、2番目のパラメータがであることがわかりますtext。この例では、それほど単純ではありません。しかし、そのドキュメントサイトは通常、かなり良いものです。
gylaz 2012年

34

i18nを介してカスタムラベルテキストを指定できます。ではconfig/locales/en.yml、ユーザーモデルの名前がであると想定してuser、以下を追加できます。

helpers:
    label:
      user:
        name: Your Name

これはあなたが使い続けることを可能にします

<%= f.label :name %>

ハードコーディングする必要はありませんYour Name

国際化の詳細については、これを。上のドキュメントlabelを参照してくださいこの


0

レール5.2.2のi18nはこれで完璧に動作します。

デバイスフォームまたはその他のフォームのラベルプレースホルダーボタンを翻訳します

<%= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %>
   <div class="mt-3">
     <label class="float-left"> <%= f.label t(:email) %> </label>
       <%= f.email_field :email, class: 'form-control', placeholder: t('.emailholder') %>
   </div>
   <div class="mt-3">
     <label class="float-left"> <%= f.label t(:password) %> </label>
       <%= f.password_field :password, class: 'form-control', placeholder: t('.passholder') %>
   </div>

   <div class="button">
     <%= f.button t('.signinbtn'), class: "" %>
   </div>
<% end %>

ローカルファイル:config / locales / en.yml

en:
  activerecord:
    ....others

  #Found in Views/devise/seasions/new <form> <*label*>
  email: "Email"
  password: "Password"

  #Views/devise <form> <placeholder & buttom>
  devise: #if your using devise forms
    #seasions/new.html.erb
    new:
      emailholder: "enter email here"
      passholder: "enter password"
      signinbtn: "SignIn"

  ....others

-2

Rails 5.1.0では、上記の受け入れられた回答は機能しません。

渡された最初のパラメーターは、カスタマイズされたラベルとして使用できます。

<%= f.label :mobile, "Mobile No:" %>

@NemyaNationについてもう少し説明してください。あなたの例は受け入れられた答えとまったく同じに見えます。
SRack

@SRackを正確に思い出せませんが、単一引用符を使用してラベルを作成しようとしたので、うまくいきません'Mobile No:'でした。したがって、二重引用符"Mobile No:"に変更することで、私の問題は解決しました。これは、ファイルの残りの部分でタグが欠落していることが原因である可能性があります。よくわかりませんが、それが当時私にとってうまくいったことを覚えています。
NemyaNation

4
返信@NemyaNationをありがとう。それは、特にあなたの場合、またはおそらく補間/テンプレート形式に関係する問題であったように思えます。Ruby / Railsは、通常の.html.erbファイルでこの例の単一引用符と二重引用符を区別しません:)
SRack
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.