#ruby-on-rails #acts-as-taggable-on
Вопрос:
У меня есть фильм-модель с тегами, использующими gem acts_as_taggable_on.
Я могу сделать это в форме: lt;%= форма.text_input :список тегов%gt;, и это работает — он показывает теги, связанные с фильмом, и я могу добавлять теги, разделенные запятыми, все нормально.
Теперь я пытаюсь использовать помощник по выбору коллекции_, и у меня было две идеи: использовать «:tag_id» в качестве первого параметра, который позволяет правильно ОТОБРАЖАТЬ теги, назначенные фильмам (как выбрано), но не обновленные, или использовать «:tag_list», который заставляет обновления тегов работать, но не отображаться…
lt;%= form.collection_select(:tag_list, @all_tags, :id, :name, { }, { class: 'font-size-m', id: 'tag-select', multiple: true }) %gt;
(Я определяю @all_tags в контроллере следующим образом):
@all_tags = ActsAsTaggableOn::Tag.all
Не уверен, как использовать collection_select с этими тегами… любая помощь будет признательна!
Комментарии:
1.
= f.select(:tag_list, ActsAsTaggableOn::Tag.all.collect { |t| [t.name, t.name] }, {}, { multiple: true })
должно сработать. Дайте мне знать, если нет2. Да, сработало. Я также обнаружил другую проблему в разрешенных параметрах для фильмов — я не должен включать :tag_list, но tag_list: [] в качестве параметра, иначе это не сработало! но теперь все решено, спасибо.
Ответ №1:
Проблема на самом деле заключалась в том, что я использовал :tag_list в качестве разрешенного параметра, а не tag_list: []. Оказывается, в зависимости от того, как вы используете действия как помечаемые, вы либо имеете дело со строкой (со значениями, разделенными запятыми), либо с массивом. Я все еще не совсем уверен, как именно это работает, но — всякий раз, когда теги не сохраняются сейчас во время моей разработки, я сначала пытаюсь переключить разрешенные параметры 🙂