2016-11-29 129 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