Поскольку вам, вероятно, не нужно искать в этих полях, вы можете использовать текстовое поле serialize
d в вашей модели.
Установите определение для каждой страны, возможно, как постоянный хеш:
BANK_ACCOUNT_FIELDS = {
# use array to preserve order
:de => [:account_holder, :account_number, :bank_number],
:fr => [:account_number, :bank_key, :bank_code, :branch_code]
}
С этим вы можете получить доступ к любому полю, как
lang = @bank_account.lang # use this field to know the country settings
BANK_ACCOUNT_FIELDS[lang].each do |field_name|
@bank_account.data[field_name] = ...
end
Для отображения используйте партиалы для каждого языка, для отображения имен полей используйте модуль I18n.