Extract method to render form fields for a locale

This commit is contained in:
Javi Martín
2018-10-18 01:53:32 +02:00
parent 361a15640f
commit 2a1b50beba

View File

@@ -8,12 +8,19 @@ module TranslatableFormHelper
class TranslatableFormBuilder < FoundationRailsHelper::FormBuilder class TranslatableFormBuilder < FoundationRailsHelper::FormBuilder
def translatable_fields(&block) def translatable_fields(&block)
@object.globalize_locales.map do |locale| @object.globalize_locales.map do |locale|
Globalize.with_locale(locale) do Globalize.with_locale(locale) { fields_for_locale(locale, &block) }
end.join.html_safe
end
private
def fields_for_locale(locale, &block)
fields_for_translation(translation_for(locale)) do |translations_form| fields_for_translation(translation_for(locale)) do |translations_form|
@template.content_tag :div, translations_options(translations_form.object, locale) do @template.content_tag :div, translations_options(translations_form.object, locale) do
@template.concat translations_form.hidden_field( @template.concat translations_form.hidden_field(
:_destroy, :_destroy,
data: { locale: locale }) data: { locale: locale }
)
@template.concat translations_form.hidden_field(:locale, value: locale) @template.concat translations_form.hidden_field(:locale, value: locale)
@@ -21,10 +28,6 @@ module TranslatableFormHelper
end end
end end
end end
end.join.html_safe
end
private
def fields_for_translation(translation, &block) def fields_for_translation(translation, &block)
fields_for(:translations, translation, builder: TranslationsFieldsBuilder) do |f| fields_for(:translations, translation, builder: TranslationsFieldsBuilder) do |f|