tag select_tag rails form_with form_for form fields_for ruby-on-rails internationalization yaml

ruby-on-rails - select_tag - nested form rails



Rails i18n y estructura yml para etiquetas de formulario (3)

De acuerdo con la documentación de ActionView . Citar:

El texto de la etiqueta tendrá como valor predeterminado el nombre del atributo a menos que se encuentre una traducción en la configuración regional I18n actual (a través de views.labels. <Modelname>. <Attribute>) o usted lo especifique explícitamente.

Tengo un modelo de "usuario" y un formulario de registro. Aquí hay un fragmento de la parte relevante:

<% form_for(@user) do |f| %> ... <p> <%= f.label :username %> <%= f.text_field :username, :class => ''full_width'' %> </p> ... <% end %>

Los puntos ocultan código sin importancia.

Como entiendo la documentación, si proporciono una traducción en mi archivo de configuración regional, en este caso: dk, mi dk.yml tiene el siguiente aspecto:

dk: views: labels: user: username: "blahblah"

Los rieles deben traducir el texto de la etiqueta e insertar "blahblah" en lugar de "Nombre de usuario".

Esto no está sucediendo, entonces debo haberme perdido algo. Cualquier ayuda apreciada.



En Rails 3.1 eso está un poco cambiado.

<% form_for @post do |f| %> <%= f.label :title %> <%= f.text_field :title %> <%= f.submit %> <% end %> en: helpers: label: post: title: ''Customized title''


Esto se debe a que el método de label que está llamando no es el de ActionView::Helpers::FormHelper sino que es, de hecho, el método ActionView::Helpers::FormTagHelper de ActionView::Helpers::FormTagHelper . El método form_for está reescribiendo el código en el bloque dado al agregar _tag a los helpers de formularios usados. ¡Entonces no estás mirando la documentación para el método correcto!

Todavía no he usado ese método, ya que a veces la etiqueta de un campo puede ser diferente de las formas múltiples que usan el mismo modelo, así que escribí mi propia ayuda.