f.autocomplete_field :tag_list 在编辑表单中

f.autocomplete_field :tag_list in an edit form

//= require jquery-ui/autocomplete
//= require autocomplete-rails

这是针对现有照片编辑表单现有标签(tag_list).我正在使用 actsataggable gem.

<%= simple_form_for @photo do |f| %>
  <%= f.label :tag_list, 'Tags (seperated by commas):', class: 'label-tags'%>
  <%= f.autocomplete_field :tag_list, autocomplete_tag_name_photos_path, :"data-delimiter" => ', ', 'data-auto-focus' => true, :id_element => '#tag_element', class: 'photo-edit-2' %>
  <%= f.submit 'Update'%>   
<% end %>

因此,如果用户 编辑 一张照片 现有 tag_list of sunday, dog, soda 它会显示在输入中作为 sunday dog soda 没有任何逗号分隔标签 。我需要它以逗号分隔标签显示。

更新代码如下:

<%= f.autocomplete_field :tag_list, autocomplete_tag_name_photos_path, :"data-delimiter" => ', ', 'data-auto-focus' => true, :id_element => '#tag_element', class: 'photo-edit-2', :value => @photo.tags.map(&:name).join(', ') %> 

问题是默认值被设置为 tag_list 数组的值,但忽略了逗号。我们使用 map 方法按名称获取标签,然后使用 join 方法在每个名称之间放置逗号。