ruby on rails 3 - rails3 i18n accepts_nested_attributes_for



我使用的是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

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

然而,颜色的标签没有翻译(但它是' activiterecord .attributes.eye.color'),错误消息中的属性只有"Occhi",其余的是errors.model.eyes.attributes.color.inclusion而不是errors.models.man/eyes.attributes.color.inclusion

错误信息是errors.model.man.attributes.eyes.inclusion,但我如何区分它?应该是"Occhi Colore non valido"而不是"Occhi non valido"

试一下:

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

相关内容

  • 没有找到相关文章

最新更新