Rails acts-as-taggable-on with select2 (and simple_form)

后端 未结 3 1398
梦毁少年i
梦毁少年i 2021-01-05 09:18

I would like to have a select2 dropdown of tags, where i could select multiple existing tags and add new ones.

I have tried many different ways and i either don\'t g

相关标签:
3条回答
  • 2021-01-05 09:44

    As I mentioned before, normal select2 library now uses only select input types, but it does work with input types when using select2-full library.

    So, this was a way out of one problem.

    Still I had problems with only passing one single value. I was actually copy/pasting code from one of the examples and it was wrong. It was stated that strong parameters should include :tag_list, which is obvious, but it is actually {tag_list[]} that was needed in order to accept all the values.

    Works like a charm now.

    0 讨论(0)
  • 2021-01-05 09:47

    For me work this:

    Coffee script:

      $( ".tags" ).select2
        theme: "bootstrap",
        tags: true
        tokenSeparators: [',']
    

    and in the view:

    = f.input :tag_list, input_html: { class: 'tags', multiple: "multiple" }, collection: @video.tag_list
    

    Important part is multiple: "multiple"

    And of course, how Mitja said, don't forget to put { tag_list: [] } to your controller strong parameters.

    And as example, if you want to have your tags as suggestions in the dropdown, you could do this:

    = f.input :tag_list, input_html: { class: 'tags', multiple: "multiple" }, collection: ActsAsTaggableOn::Tag.most_used(30), value_method: :name
    
    0 讨论(0)
  • 2021-01-05 09:48

    Try this one, hope this will work for you.

    = f.input :tag_list, class: "taggable",data: {options: @model.tags.map { |t| t.name }} 
    
    $(".taggable").select2(
      tags: $('.taggable').data('options')
      width: "252px"
    );
    
    0 讨论(0)
提交回复
热议问题