私はRails 3.2.6を使用しています。これはケースの例です:
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
ビュー (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
ただし、色のラベルは翻訳されていません(ただし、「actviterecord.attributes.eye.color」と一緒です)、エラーメッセージの属性は「Occhi」のみで、残りはerrors.model.eyes.attributes.color.inclusion
代わりですerrors.models.man/eyes.attributes.color.inclusion
エラー メッセージは ですがerrors.model.man.attributes.eyes.inclusion
、どうすれば区別できますか? 「おっち non valido」ではなく、「Occhi Colore non valido」のようなものにする必要があります。