Returns a label tag tailored for labelling an input field for a specified
attribute (identified by method
) on an object assigned to the
template (identified by object
). The text of label will
default to the attribute name unless a translation is found in the current
I18n locale (through
helpers.label.<modelname>.<attribute>) or you specify it
explicitly. Additional options on the label tag can be passed as a hash
with options
. These options will be tagged onto the HTML as an HTML
element attribute as in the example shown, except for the
:value
option, which is designed to target labels for #radio_button tags (where
the value is used in the ID of the input tag).
Examples
1 2 | label( :post , :title ) # => <label for="post_title">Title</label> |
You can localize your labels based on model and attribute names. For example you can define the following in your locale (e.g. en.yml)
1 2 3 4 | helpers: label: post: body: "Write your entire text here" |
Which then will result in
1 2 | label( :post , :body ) # => <label for="post_body">Write your entire text here</label> |
Localization can also be based purely on the translation of the attribute-name (if you are using ActiveRecord):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | activerecord: attributes: post: cost: "Total cost" label( :post , :cost ) # => <label for="post_cost">Total cost</label> label( :post , :title , "A short title" ) # => <label for="post_title">A short title</label> label( :post , :title , "A short title" , class : "title_label" ) # => <label for="post_title" class="title_label">A short title</label> label( :post , :privacy , "Public Post" , value: "public" ) # => <label for="post_privacy_public">Public Post</label> label( :post , :terms ) do 'Accept <a href="/terms">Terms</a>.' .html_safe end |
Please login to continue.