Rails Tagging с автозаполнением - PullRequest
0 голосов
/ 10 декабря 2018

Я пытаюсь завершить эту статью о пометке https://medium.com/@sherzelsmith/add-a-filtering-multiple-tag-system-with-autocomplete-to-your-rails-model-in-rails-5-1bf88cd53e9
Моя проблема в том, что мне нужно сделать возможным создание несуществующего, но сейчас оно очищает поле, если вы пытаетесь заполнитьэто с новым тегом (в данный момент не существует), поэтому новый метод не может быть создан этим методом.Автор этой статьи развернул демонстрационную версию этой функции, поэтому я оставлю ее здесь для лучшего понимания того, о чем я говорю.https://blogit -ss.herokuapp.com / posts / new

<div class = 'col-md-8 offset-2'>
  <h1 class = "text-center">New Tag</h1>
  <%= simple_form_for @product, url: product_path(@product) do |f| %>
    <p><small>Tags: <%= raw @product.tags.map(&:name).map { |t| link_to t, tag_path(t) }.join(', ') %></small</p>
    <p><%= f.input :tag_ids, collection: Tag.order(:name), include_blank: true, input_html: { multiple: true, class: 'chosen-select' } %></p>
    <%= f.submit "Next", class: 'btn btn-primary' %>
  <% end %>
</div>

Так что, возможно, у кого-то здесь есть какие-либо предложения о том, как избежать «совпадений без результатов» и позволить форме принятьновые теги?Как это работает здесь, на Stackoverflow.
Единственный способ, который был ближайшим к моей цели - поле text_for в форме_for: <% = f.text_field: tag_list, collection: Tag.order (: name), include_blank: true, input_html: {множественный: true, класс: 'selected-select'}%>

, что позволяет вводить имена тегов, разделенные запятыми, но без автозаполнения.

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

Таким образом, лучшее решение для этого кроется в ответе Джада Чейна на подобную проблему
https://stackoverflow.com/a/36350998/10253611


Просто добавьте библиотеку bootstrap-tagsinput в мой проект иПередача data-role в мое поле ввода (хотя сейчас оно не имеет автозаполнения, но подходит для запуска):

<div class = 'col-md-8 offset-2'>
  <h1 class = 'text-center'>New Blog Post</h1>
  <%= simple_form_for @product, url: tag_link_product_url(@product), remote: true do |f| %>
  <p><small id='tag_links'>Tags: <%= raw @product.tags.order(:name).map { |tag| link_to tag.name, products_path(q: { tags_id_eq: tag.id }) }.join(', ') %></small</p>
  <%= f.text_field :tag_list, collection: Tag.order(:name), 'data-role': 'tagsinput', input_html: { multiple: true, class: 'chosen-select' } %>
  <%= f.submit "Next", class: 'btn btn-primary' %>
 <% end %>
</div>
0 голосов
/ 10 декабря 2018

Привет! Я добавил еще один тег-выпадающий список. Это рабочая ссылка

Рабочая ссылка для добавления настраиваемого тега

А ниже приведена ссылка на код на GitHub

Ссылка Github для настраиваемого выпадающего кода

...