2016-11-29 82 views
0

我正在尝试使用select2标记我的标记。但是,我在开展工作时遇到了很多困难。我已经尝试了很多东西,但似乎没有任何工作,谷歌搜索和插入其他人的解决方案没有为我工作。我需要做什么来使用select2和acts_as_taggable_on标记我的标记? 我希望用户能够选择一个标签或创建它,如果它不存在。select2 with acts_as_taggable_on in Rails

我正在使用Rails 5.我正在使用'select2-rails'创业板。

我的模型:

class Event < ApplicationRecord 
    belongs_to :user 
    acts_as_commentable 
    acts_as_taggable_on :tags 
end 

我有很强的PARAMS:

def event_params 
    params.require(:event).permit(:title, :description, :tag_list, tag_lists: []) 
end 

注:我也试过 “tag_list:[]”(单数)。我试过没有“标签列表:[]”以及。当我删除“:tag_list”时,没有任何标签被保存到数据库中。

我的观点:

<%= form_for @event do |f| %> 

    <p> 
    <%= f.label :title %><br> 
    <%= f.text_field :title %> 
    </p> 

    <p> 
    <%= f.label :text %><br> 
    <%= f.text_area :description %> 
    </p> 

    <p> 
    <%= f.label :tag_list, "Tags" %><br> 
    <%= f.text_field :tag_list %> 
    </p> 
    <p> 
    <%= f.submit %> 
    </p> 

<% end %> 

注:我在这里已经尝试了一些东西,但是这是我在哪里现在。

我的JS:

//= require jquery 
//= require jquery_ujs 
//= require select2 
//= require turbolinks 
//= require_tree . 
//= require bootstrap 

我的样式表:

/* 
*= require_tree . 
*= require_self 
*= require select2 
*/ 

事情我已经试过events.coffee:

$ -> 
    $('#event_tag_list').select2 tags: [] 
    return 

$('#event_tag_list').select2 
    tags: true 
    tokenSeparators: [',',' '] 

注:我试过几个事情,但这是我与最多的工作。

回答

0

想到我会回答这个以防万一有人遇到类似的问题。它与Rails 5和Turbolinks的工作方式有关。在浏览RailsGuides之后,我发现问题在于Turbolinks覆盖了正常的页面加载过程。我把宝石换成了Bootstrap-Tokenfield,但原理是一样的。这是我固定我的javascript:

$(document).on "turbolinks:load", -> 
 
\t $('#event_tag_list').tokenfield();

我有很强的PARAMS:

def event_params 
    params.require(:event).permit(:title, :description, :tag_list) 
end 

我的形式:

<p> 
    <%= f.label :tag_list, "Tags" %> <br> 
    <%= f.text_field :tag_list, value: f.object.tag_list.to_s %> 
    </p> 

RailsGuides解释:http://guides.rubyonrails.org/working_with_javascript_in_rails.html#how-turbolinks-works

+0

嗨对不起,您发布了一段时间,但我有类似的问题,只是无法在Rails 5中运行。我正在使用本教程 - https://rcode5.wordpress.com/2013/03/ 07/acts_as_taggable_on-select2-super-easy-tags-in-rails /和我觉得js和jquery代码只是给你一个麻烦,也许正如你所说的Turbolinks问题。什么是'tokenfield',因为它无法解决? – Means