【发布时间】:2018-12-04 08:57:50
【问题描述】:
我使用nested_form_fields gem 来翻译技术文档中的一些特定字段。翻译是与文档关联的嵌套字段,因此每个文档对于每种语言的每个字段都有一个翻译实例。
在编辑文档的_form视图中,为每个翻译字段调用nested_form_fields,显示相应输入的位置由包含的DIV的id设置:
<div class="row">
<div class="col-md-1">
<%= image_tag("next32.png", :id => "unfold") %>
</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 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_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 -->
将此代码用于页面中的 2 或 3 个字段,页面可用的所有已翻译字段都显示在 nested_fields_for 方法的每个实例中。
如果有办法在 f.nested_fields_for :translations 中添加过滤器(以块的形式?),或者我必须获取所有翻译记录并在 do |locution| 循环中过滤掉。
感谢您的帮助!
【问题讨论】:
标签: ruby-on-rails nested-form-for