Rails i18n-如何在fields_for中转换一个继承的模型



我有以下型号:

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的amount属性。当表单看起来像这个时,这对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关系的自动翻译?

我发现了问题。它在AccoutingDocument上缺少accepts_nested_attributes_for :account_movement

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

无需在本地添加额外翻译

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

最新更新