Rails i18n-如何在具有has_one继承模型的fields_for中转换模型

问题描述 投票:0回答:1

我有以下型号:

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'

我是否缺少某些内容或不自动翻译fields_for中的has_onde逆关系?

ruby-on-rails ruby-on-rails-5 rails-i18n
1个回答
0
投票

我发现了问题。它在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'
© www.soinside.com 2019 - 2024. All rights reserved.