Rails3 i18n accepts_nested_attributes_for how to make a translation?

I am using Rails 3.2.6 and this is an example:

class Man < ActiveRecord::Base has_many :eyes accepts_nested_attributes_for :eyes end class Eye < ActiveRecord::Base belongs_to :man validates_inclusion_of :color, in: { %w[brown green blue] } end 

Views (in HAML):

 = form_for @man do |f| - if @man.errors.any? #error_explanation %h2= t 'errors.messages.record_invalid', count: @man.errors.count %ul - @man.errors.full_messages.each do |msg| %li= msg = f.fields_for(:eyes) do |b| .field = b.label :color = b.text_field :color .actions = f.submit :submit 

it.yml:

 it: activerecord: attributes: customer: eyes: Occhi customer/eyes: color: Colore errors: models: man/eyes: attributes: color: inclusion: non valido 

However, the color label is not translated (but using actviterecord.attributes.eye.color), the attribute in the error message is only β€œOcchi”, and the remaining errors.model.eyes.attributes.color.inclusion instead of errors.models.man/eyes.attributes.color.inclusion

The error message is errors.model.man.attributes.eyes.inclusion , but how can I distinguish it? It should be something like "Occhi Colore non valido" instead of "Occhi non valido"

+4
source share
1 answer

Try the following:

 it: activerecord: attributes: # set the name used in nested attribute error messages customer/eyes: color: Occhi Colore errors: models: # change the error message for eye color not included in the list eye: attributes: color: inclusion: non valido messages: # change the inclusion message globally inclusion: non valido helpers: label: # set the label used by form builder for labels man[eyes_attributes]: color: Occhi Colore 
+6
source

All Articles