Rails i18n - Как перевести модель в fields_for для этой унаследованной модели has_one - PullRequest
0 голосов
/ 01 мая 2020

У меня есть следующие модели:

class AccountMovement < ActiveRecord::Base
  has_one :accounting_document
  ..
end

class AccountingDocument < ActiveRecord::Base
  belongs_to :account_movement
  ..
end

class CreditNote < AccountingDocument
  ..
end

class Invoice < AccountingDocument
  ..
end

Пользователи могут добавлять кредитные заметки

<%= form_with model: @credit |f| %>

  <%= f.fields_for :account_movement do |ff| %>
    <div>
      <%= ff.label :amount %>
      <%= ff.number_field(:amount, step: 0.01, autofocus: true) %>
    </div>
    ...
  <% end %>
  ...
<% end %>

Сайт поддерживает только португальский, поэтому я добавил следующий перевод

pt:
  activerecord:
    attributes:
      account_movement:
        amount: 'Valor'

Но он не может автоматически перевести атрибут количества в account_movement. Это прекрасно работает для отношений has_one, когда форма выглядит следующим образом

<%= form_with model: @account_movement |f| %>

  <div>
    <%= f.label :amount %>
    <%= f.number_field(:amount, step: 0.01, autofocus: true) %>
  </div>

  <%= f.fields_for :credit_note do |ff| %>
    ...
  <% end %>

  ...
<% end %>

Я уже пробовал много подходов без успеха

pt:
  activerecord:
    attributes:
      account_movement:
        amount: 'Valor'
      credit_note/account_movement:
        amount: 'Valor'
      credit_note[account_movement]:
        amount: 'Valor'
      credit_note_account_movement:
        amount: 'Valor'

Я что-то упустил или автоматически переводил обратные отношения has_onde в fields_for не поддерживается?

1 Ответ

0 голосов
/ 09 мая 2020

Я нашел проблему. Не хватало accepts_nested_attributes_for :account_movement на AccoutingDocument

class AccountingDocument < ActiveRecord::Base
  belongs_to :account_movement

  accepts_nested_attributes_for :account_movement
  ..
end

Нет необходимости добавлять дополнительный перевод на местных жителей

pt:
  activerecord:
    attributes:
      account_movement:
        amount: 'Valor'
...