Как определить, какую <fieldset>дублировать в add_nested_fields_link? - PullRequest
0 голосов
/ 09 декабря 2018

В моем приложении на Rail 5.2 некоторые поля документов получают выгоду от полей перевода благодаря гему nested_form_fields.Gemfile содержит gem 'nested_form_fields'.

Для каждого переведенного поля используется одна запись перевода.Определены как минимум два контейнера: #name_translation и #description_translation для хранения вложенных полей.Каждый перевод содержится в поле translations.description (неправильное воображение) и идентифицируется по document_id, field_name и language.Вот код:

  <div class="row"> <!-- translated row -->
    <div class="col-md-1">
      <%= image_tag("next32.png", :id => "unfold") %> # toggles the -div class="translation"- visibility
    </div>
    <div class="col-md-1 text-right"> <%= t('Name')%>:
    </div>
    <div class="col-md-10 field"><%= f.text_field :name, :class => "col-md-8" %>
    </div>
  </div>
  <!-- Translations management -->
  <div class="translation">
    <div class="row">
      <div class="col-md-10 col-md-offset-2" id="name_translation">
        <%= f.nested_fields_for :translations, this_object.translations.where("field_name='name'") do |locution| %>
        <div class="row"> #translated row
          <div class="col-md-1">
            <%= locution.collection_select :language, @other_languages, :property, :name  %>
          </div>
          <div class="col-md-8">
            <%= locution.text_field :description, :class => "col-md-10" %>
          </div>
          <div class="col-md-1">
            <%= locution.remove_nested_fields_link {image_tag("remove.png")} %>
          </div>
          <div class="col-md-1">
            <%= locution.hidden_field :field_name, :value => 'name' %>
          </div>
        </div>
        <% end %>
      </div>
    </div>
    <div class="row">
      <div class="col-md-10 col-md-offset-2">
        <%= f.add_nested_fields_link :translations, image_tag("add.png"), data: {insert_into: "name_translation"} %> <%= t('New') %>
      </div>
    </div>
    <br/>
  </div>
  <!-- End of translations -->

  <div class="row"> <!-- no need for translation in this row -->
    <div class="col-md-2 text-right"> <%= t('Code')%>:
    </div>
    <div class="col-md-2 field"><%= f.text_field :code %>
    </div>
    <div class="col-md-2 text-right"> <%= t('Status')%>:
    </div>
    <div class="col-md-2 field"><%= f.collection_select :status_id, @statuses_list, :id, :name %>
    </div>
  </div>

  <div class="row"> <!-- translated row -->
    <div class="col-md-2 text-right"> <%= t('Description')%>:
    </div>
    <div class="col-md-10 field"><%= f.text_area :description, :rows => 5, :class => "col-md-8" %>
    </div>
  </div>
  <!-- Translations management -->
  <div class="translation">
    <div class="row">
      <div class="col-md-10 col-md-offset-2" id="description_translation">
        <%= f.nested_fields_for :translations, this_object.translations.where("field_name='description'")  do |locution| %>
        <div class="row">
          <div class="col-md-1">
            <%= locution.collection_select :language, @other_languages, :property, :name  %>
          </div>
          <div class="col-md-8">
            <%= locution.text_area :description, :rows => 5, :class => "col-md-10" %>
          </div>
          <div class="col-md-1">
            <%= locution.remove_nested_fields_link {image_tag("remove.png")} %>
          </div>
          <div >
            <%= locution.hidden_field :field_name, :value => 'description' %>
          </div>
        </div>
        <% end %>
      </div>
    </div>
    <div class="row">
      <div class="col-md-10 col-md-offset-2">
        <%= f.add_nested_fields_link :translations, image_tag("add.png"), data: {insert_into: "description_translation"} %> <%= t('New') %>
      </div>
    </div>
    <br/>
    </div>
  <!-- End of translations -->

При нажатии на ссылку add_nested_field_link набор полей создается в нужном контейнере благодаря блоку data: {insert_into: "description_translation"}.Хорошо.

Но, говоря о второй ссылке add_nested_field_link, она должна вставить второй набор полей, ссылаясь на перевод «описания» моего документа.В текущей конфигурации он фактически дублирует первый набор полей, соответствующий полю 'name' в моем документе.

Как я могу указать в add_nested_field_link, какой набор полей должен дублироваться?Спасибо за вашу помощь!

...